问答题 下列程序的功能是:找出所有100以内(含100)满足I、I+4、I+10都是素数的整数I(I+10也是在100以内)的个数cnt,以及这些I之和sum。请编制函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件out91.dat中(数值1不是素数)。
注意:部分源程序已给出。
请勿改动主函数main()和输出数据函数writeDAT()的内容。
试题程序:
#include <stdio.h>
int cnt,sum;
void writeDAT();
int isPrime(int number)
int i,tag=1;
if(number==1)
return 0;
for(i=2;tag && i<=number/2;i + +)
if(number%i==0)tag=0;
return tag;

void countValue()


void main()
cnt=sum=0;
countValue();
printf("满足条件的整数的个数=% d/n",cnt);
printf("满足条件的整数的和值=% d/n",sum);
writeDAT();

void writeDAT()
FILE * fp;
fp=fopen("out91.dat","w");
fprintf(fp,"% d/n% d/n",cnt,sum);
fclose(fp);


【正确答案】void countValue()
{
int i; /*定义循环控制变量*/
cnt=0;
sum=0; /*初始化变量*/
for(i=2;i<90;i + +) /*范围为100以内*/
if(isPrime(i) && isPrime(i+4)&&isPrime(i+10))
{
cnt + +; /*统计满足条件的数的个数*/
sum+=i; /*将满足条件的数求和*/
}
}
【答案解析】[解析] 本题中要求判断在100以内,I、I+4、I+10都是素数的个数。因为I+10也必须在100以内,1不是素数,所以我们可以从2开始判断到89即可(90是偶数,明显不是素数)。本题已经给出了判断素数的函数,所以这里只需调用即可。通过一个if语句判断I、I+4及I+10是否都是素数,对满足条件的数进行求和,同时用cnt统计其个数。