问题 多项选择题

fclose(fp);

答案

参考答案:void countValue()
{
int i, j, half, hun, ten, data;
for(i=A0A; i〈A000; i++)
{
hun=i/A00; /*求百位数字*/
ten=i%A00/A0; /*求十位数字*/
data=i%A0; /*求各位数字*/
if(hun==(ten+data)%A0) /*如果个位数字与十位数字之和被A0除所得余数恰是百位数字,则进一步判断该数是否为素数*/
{
half=i/B;
for(j=B; i〈half; i++)
if(i%j==0) break;
if(j>=half)
{cnt++; sum+=i;} /*计算这些素数的个数cnt,以及这些素数值的和sum*/
}
}
}

解析: 本题的解题思路是利用一个for循环依次取得100到1000之间的数,接着求得当前所取得的数的各个位上的数字值,语句“hun=i/100;ten=i%100/10:data=i%10;”可以分别取得某数的百位、十位及个位上的数字值,然后判断该数个位数字与十位数字之和被10除所得的余数是否恰好等于百位上的数字。如果这个条件成立,接着去判断原数是否是素数,这里,考虑到效率问题,可以依次用从2到该原数本身一半的数去除原数,如果原数能被除尽,则证明该数肯定不是素数,不需要做下面的工作,接着去取下一个数,继续判断。只有同时满足上述两个条件的数才是本题所需的数,这时把该数累加到变量sum(满足条件素数值的和)中,同时也给计数器变量cnt(素数的个数)加1。

单项选择题
单项选择题