100—1000间所有个数字:90

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

100—1000间所有个数字:90

(90)

下列程序的功能是:选出100~1000间的所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数cnt,以及这些素数值的和sum。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT90.DAT中。

【答案】

void countValue()

{

int i,j; /*定义循环控制变量*/

int a3,a2,a1; /*定义变量存储3位数每位的数字*/

int half;

for(i=101;i<1000;i++) /*在该范围内寻找符合条件的数*/

{

a3=i/100; /*求百位数字*/

a2=i%100/10; /*求十位数字*/

a1=i%10; /*求个位数字*/

if(a3==(a2+a1)%10) /*如果个位数字与十位数字之和被10除所得余数恰是百位数字*/

{

half=i/2;

for(j=2;j<=half;j++) /*进一步判断该数是否为素数*/

if(i%j==0) break; /*如果不是素数,则跳出循环,接着判断下一个数*/

if(j>half) /*如果是素数*/

{

cnt++; /*计算这些素数的个数cnt*/

sum+=i; /*计算这些素数的和值sum*/

}

}

}

}

【解析】本题的解题思路是利用一个for循环依次取得100到1000之间的数,接着求得当前所取得的数的各个数位上的数字,然后判断该数个位数字与十位数字之和被10除所得的余数是否恰好等于百位上的数字。如果该条件成立,接着去判断原数是否是素数。最后将满足以上两个条件的数累加到变量sum(素数的和值)中,同时通过计数器变量cnt统计出素数的个数。

相关文档
最新文档