所属年份:2011.3
请编写函数fun,其功能是:计算并输出3~n之间所有素数的平方根之和。
例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。
#include <stdio.h> #include <math.h> double fun(int n) { } int main() { int n; double sum; FILE *out; printf("Input N="); scanf("%d",&n); sum=fun(n); printf("\n\nsum=%f\n\n",sum); /******************************/ out=fopen("out.dat","w"); fprintf(out,"%f\n",fun(180)); fclose(out); /******************************/ return 0; }
【解题思路】
本题考查素数的判定方法及求平方根函数sqrt的使用。首先确定了n的范围,然后确定循环条件,最后根据素数的判定方法确定条件语句。
【参考答案】
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; }