问答题 下列程序的功能是:找出所有100以内(含100)满足i、i+4、i+10都是素数的整数i(i+10也在100以内)的个数cnt以及这些i之和sum。请编写函数countValue()实现程序要求的功能,最后调用函数writeDat(),把结果cnt和sum输出到out.dat文件中。 注意:部分源程序已经给出。 请勿改动主函数main()和输出数据函数writeDat()的内容。 #include <stdio.h> int cnt,sum; int isPrime(int number) { int i,tag=1; for(i=2;tag && i<=number/2;i++) if(number%i==0) tag=0; return tag; } void countValue() { } void writeDat() { FILE *fp; fp=fopen("out.dat","w"); fprintf(fp,"%d/n%d/n",cnt,sum); fclose(fp); } void main() { cnt=sum=0; countValue(); printf("满足条件的整数的个数=%d/n",cnt); printf("满足条件的整数的和值=%d/n",sum); writeDat(); }
【正确答案】void countValue() { int i; for (i=2;i<=90;i++) /*遍历筛选范围2~90*/ if (isPrime(i) && isPrime(i+4) && isPrime(i+10) { /*若同时满足i、i+4. i+10都是素数*/ cnt++; /*计数值cnt加1*/ sum+=i; /*将i累加到sum中*/ } }
【答案解析】