下列程序的功能是:选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CNT以及这些素数值的和SUM。请编写函数COUNTvalue()实现程序要求,最后调用函数WRITEDAT()把结果CNT和SUM输出到文件OUT.DAT中.
注意:部分源程序已给出。
请勿改动主函数main()和函数readwriteDAT()的内容。
#include <stdio.h>
int cnt, sum;
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", sum);
writeDAT();
}
我的解答是:
int i, j, half, hun, ten, data,cnt=0,sum=0;
for (i=101; i<1000; i++)
{
hun = i/100;
ten = i%100/10;
data = i%10;
if (hun == (ten+data)%10)
{
half = i/2;
for (j=2; j<half; j++)
if (i%j == 0)
break;
if (j >= half)
{
cnt++;
sum += i;
}
}
}
输出是:
素数的个数=0
满足条件素数值的和=0
慕仙森
智慧大石