请编写函数fun,其功能是:计算并输出3到n之间(含3和n)所有素数的平方根之和。 例如,在主函数中从键盘给n输入100后,输出为:sum=148.874270。 注意:要求n的值大于2但不大于100。 部分源程序在文件PROGl.

admin2015-06-08  36

问题 请编写函数fun,其功能是:计算并输出3到n之间(含3和n)所有素数的平方根之和。
    例如,在主函数中从键盘给n输入100后,输出为:sum=148.874270。
    注意:要求n的值大于2但不大于100。
    部分源程序在文件PROGl.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
double fun(int n)
}
NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。  */
  FILE *rf,*wfj int n,i;double s;
  rf=fopen(“in.dat”,“r”);
  wf=fopen(“out.dat”,“w”);
  for(i=0;i<10;i++){
    fscarlf(rf,"%d",  &n),
    s=fun(n);
    fprintf(wf,“%lf\n”,s);
  }
  fclOse(rf);  fclose(wf);
}
maiFI()
{  int n;double sum;
  printf(“\n\nInput n:  ”);  scanf
(“%d”,  &n);
  sum=fun(n);
  printf(“\n\nsum=%f\n\n”,sum);
  NONO();
}

选项

答案int i,j=0; double s=0; for (i=3; i<=n; i++){ for (j=2; j
解析 函数fun的功能是计算并输出3到n之间(含3和n)所有素数的平方根之和,首先根据题干中的要求找出3到n之间的素数,并求出素数的平方根,然后求得这些平方根的和。
   [解题思路]
    (1)素数是指能被1和本身整除的正整数(>1),所以判别i是否为素数,只要用2、3、…、i-1这些数逐个去除i,观察余数是否为0即可,只要有一次相除余数为0,i就不是素数,否则i为素数。
    (2)在循环中找到每一个素数,然后对其求平方根,然后进行累加求和。
转载请注明原文地址:https://jikaoti.com/ti/7jn0FFFM
0

最新回复(0)