程序填空题:判断整数的各位数字之和是否为质数
以下程序判断输入的正整数的各位数字之和是否为质数并打印相应的结果”。请在空格里填写缺失的部分代码。
提示:1、填写的代码要确保程序可以正确编译、运行得出结果;2、空格之后的括号里注明了分数,该括号不属于代码部分。
```c
#include
#include
int isPrime(int num){ //判断num是否为质数
for(int i=2; @@[i<=sqrt(num)](1); i++) //注意:空格外面已经有分号,格子里不要填写多余的分号
if( @@[num % i == 0](2)) return 0;
return 1;
}
int sumDigits(int num){ //返回num各位数字之和
int sum;
for( @@[sum=0; num>0; num/=10](3) )
sum += @@[num%10](2);
return sum;
}
int main(){
int num;
scanf("%d",&num); //输入一个整数,并假设输入的数大于1
if( @@[isPrime(sumDigits(num))](2) == 1 ) printf("各位数字之和是素数!\n");
else printf("各位数字之和不是素数!\n");
return 0;
}
```
答案:
第1空:i<=sqrt(num)
第2空:num % i == 0
第3空:sum=0; num>0; num/=10
第4空:num%10
第5空:isPrime(sumDigits(num))
提示:1、填写的代码要确保程序可以正确编译、运行得出结果;2、空格之后的括号里注明了分数,该括号不属于代码部分。
```c
#include
#include
int isPrime(int num){ //判断num是否为质数
for(int i=2; @@[i<=sqrt(num)](1); i++) //注意:空格外面已经有分号,格子里不要填写多余的分号
if( @@[num % i == 0](2)) return 0;
return 1;
}
int sumDigits(int num){ //返回num各位数字之和
int sum;
for( @@[sum=0; num>0; num/=10](3) )
sum += @@[num%10](2);
return sum;
}
int main(){
int num;
scanf("%d",&num); //输入一个整数,并假设输入的数大于1
if( @@[isPrime(sumDigits(num))](2) == 1 ) printf("各位数字之和是素数!\n");
else printf("各位数字之和不是素数!\n");
return 0;
}
```
答案:
第1空:i<=sqrt(num)
第2空:num % i == 0
第3空:sum=0; num>0; num/=10
第4空:num%10
第5空:isPrime(sumDigits(num))