程序填空题:验证哥德巴赫猜想
哥德巴赫猜想是:任何一个大于2的偶数可以写为两个质数之和。下面这段程序验证这个猜想,对于输入的大于2的偶数,给出其等于两个质数之和的算式;对于非法输入,给出输入无效的提示。
```c++
#include
int isPrime(int num){
for(int i=2; i<=num/2; i++)
if( @@[num%i == 0](2) ) return 0;
return 1;
}
int main( ){
int a;
for(int i=0; i<4; i++){ //共进行4次验证
scanf("%d",&a); //输入一个整数
if( @@[a<=2 || a%2==1](2)) printf("Invalid Input\n"); // 输入有效性验证
else for(int i=2; i<=a/2; i++)
if( @@[isPrime(i) && isPrime(a-i)](2)){
printf("%d = %d + %d\n", a, i, a-i);
break;
}
}
return 0;
}
```
答案:
第1空:num%i == 0
第2空:a<=2 || a%2==1
第3空:isPrime(i) && isPrime(a-i)
```c++
#include
int isPrime(int num){
for(int i=2; i<=num/2; i++)
if( @@[num%i == 0](2) ) return 0;
return 1;
}
int main( ){
int a;
for(int i=0; i<4; i++){ //共进行4次验证
scanf("%d",&a); //输入一个整数
if( @@[a<=2 || a%2==1](2)) printf("Invalid Input\n"); // 输入有效性验证
else for(int i=2; i<=a/2; i++)
if( @@[isPrime(i) && isPrime(a-i)](2)){
printf("%d = %d + %d\n", a, i, a-i);
break;
}
}
return 0;
}
```
答案:
第1空:num%i == 0
第2空:a<=2 || a%2==1
第3空:isPrime(i) && isPrime(a-i)