100—1000间所有个数字:90
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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统计出素数的个数。