问题 问答题

请编写函数countValue(),其功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也是在100以内)的个数count,以及这些I之和sum。函数WriteData()负责把结果输出到OUT.DAT文件中。
注意:部分源程序已给出。
请勿改动主函数main()和写函数WriteData()的内容。

试题程序:


#include<stdio.h>
int count,sum;
void writeData();
void countValue()

void main()

count=sum=0:
countValue();
printf("count=%sum=%d",count,sum);
writeData();

void writeData()

FILE*fp;
fp=fopen("OUT.DAT","w");
fprintf(fp,"%d%d",count,sum);
fclose(fp);

答案

参考答案:void countValue()
{
int i,j,k,d[3],flag;
for(i=0;i<=100-10;i++)
{
d[0]=i;d[1]=i+4;d[2]=i+10;//将三个数存入数组
flag=0;//将标志位清零
for(k=0;k<3;k++)
{
for(j=2;j<d[k];j++)//判断是否为素数
if(d[k]%j==0)//如果一个数除了自身和1之外还有其他余数,则该数不是素数
{
flag=1;//将标志位置1
break;//一旦发现不满足条件的数就退出循环
}
}
if(flag==0)//如果满足条件
{
sum+=i;//将该数加入总和
count++;//计数器加1
}
}
}

解析: 本题主要考查素数的判断问题。
①判断是否为素数:素数的定义是,若一个数除了其自身和1再没有其他的除数,则该数就是素数。故用其定义可以很容易判断,在2到所判断数之间的数进行扫描,若有一个除数,则该数就不是素数;②判断4个数是不是都是素数,若有一个不是,则不符合要求,即可进行下一轮判断。

单项选择题
单项选择题