P074 3~n之间所有素数的平方根之和 ★★

03-程序设计题 软件121, 唐鼎威 1214浏览

所属年份: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;
      }