所属年份:2011.3
请编写函数fun,其功能是:计算并输出3~n之间所有素数的平方根之和。
例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。
#include
#include
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;
}