问答题
下列程序的功能是:找出所有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中*/
}
}
【答案解析】