哥德巴赫猜想是:任何一个大于2的偶数可以写为两个质数之和。下面这段程序验证这个猜想,对于输入的大于2的偶数,给出其等于两个质数之和的算式;对于非法输入,给出输入无效的提示。 #include <stdio.h> int isPrime(int num) { int i; for(i=2; i<=num/2; i++) if( 第1空 == 0) return 0; return 1; } int main( ) { int a,i; scanf("%d",&a); //输入一个偶数 if(a<=2 || 第2空 ) printf("Invalid Input\n"); // 输入有效性验证 else for( i=2; i<=a/2; i++) if( 第3空 && isPrime(a-i)) { printf("%d = %d + %d\n", a, i, a-i); break; } return 0; }
时间: 2023-07-16 12:17:23 浏览: 177
c++验证哥德巴赫猜想
第1空处应填入 num%i,表示判断 num 是否能被 i 整除;第2空处应填入 a%2!=0,表示判断 a 是否为偶数;第3空处应填入 i 和 a-i 均为质数的条件,即 isPrime(i)==1 && isPrime(a-i)==1。完整程序如下:
```
#include <stdio.h>
int isPrime(int num)
{
int i;
for(i=2; i<=num/2; i++)
if(num%i == 0) return 0;
return 1;
}
int main( )
{
int a,i;
scanf("%d",&a); //输入一个偶数
if(a<=2 || a%2!=0) printf("Invalid Input\n"); // 输入有效性验证
else for(i=2; i<=a/2; i++)
if(isPrime(i)==1 && isPrime(a-i)==1)
{
printf("%d = %d + %d\n", a, i, a-i);
break;
}
return 0;
}
```
阅读全文