问答题 请编写函数fun,其功能是:计算并输出3~n之间所有素数的平方根之和。例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。注意:n的值要大于2但不大于100。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include<stdio.h>#include<math.h>double fun(int n){}main(){ int n; double sum; FILE*out: printf(“Input n=”); searlf(“%d”,&n); SHm=fun(n); printf(“\nsum=%f\n”,sum);/********************/ out=fopen(“out.dat”,“W”); fprintf(out,“%f\n”,fun(180)); felose(out);/********************/}
【正确答案】正确答案:double fun(int n) { int m,k,i; double s=0.0; for(m=3;m<=n;m++) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) s+=sqrt(m); } return s: }
【答案解析】解析:本题考查:素数的判定方法及求平方根函数sqrt的使用。 首先确定n的范围,然后确定循环条件,最后根据素数的判定方法确定条件语句。