问答题 1.  请编写fun()函数,其功能是:计算并输出3~m所有素数的平方根之和。
    例如,若主函数从键盘给m输入50后,则输出为s=63.665791。
    注意:m的值要大于2,但不大于100。部分源程序给出如下。
    请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。
    试题程序:
    #include<math.h>
    #include<stdio.h>
    double fun(int m)
    {
    }
    void main()
    {
    int m;
    double s;
    FILE *out;
    printf("\n\nInput m:");
    scanf("%d",&m);
    s=fun(m);
    printf("\n\ns=%f\n\n",s);
    out=fopen("outfile.dat","w");
    for(m=0;m<10;m++)
    fprintf(out,"%f\n",fun(m+80));
    fclose(out);
    }
【正确答案】int n,k,i;
   double sum=0.0:
   for(n=3;n<=m;n++)  //判断n是否为素数
   {
   k=sqrt(n);//求n的平方根
   for(i=2;i<=k;i++)
   if(n%i==0)break;//如果n不是素数,跳出
   if(i>=k+1)
   sum+=sqrt(n);//求平方根的和
   }
   return sum;
【答案解析】 首先,判断循环中n是否为素数,如果不是素数,求其平方根的累加和,并返回计算结果,否则跳出判断循环。其中,对于平方根的求解可以使用C语句中的sqrt()函数。