题目描述
哥德巴赫猜想大家都知道一点吧。我们现在不是想证明这个结论,而是对于任给的一个不小于6的偶数,来寻找和等于该偶数的所有素数对。做好了这件实事,就能说明这个猜想是成立的。
要求程序定义一个prime()函数和一个main()函数,prime()函数判断一个整数n是否是素数,其余功能在main()函数中实现。
int prime(int n)
{
//判断n是否为素数, 若n为素数,本函数返回1,否则返回0
}
输入:一个偶数M (M是6到1000000之间的一个偶数).
输出:输出和等于该偶数的所有素数对a和b,按a递增的顺序输出,(a,b)和(b,a)被视为同一个素数对。
样例输入 Copy
40
样例输出 Copy
3 37 11 29 17 23
- #include
- #include
- int prime(int a){//验证是否是素数
- if(a==1) return 0;
- for(int i=2;i<=sqrt(a);i++){
- if(a%i==0) return 0;
- }
- return 1;
- }
- int main(){
- int m;
- scanf("%d",&m);//输入一个不小于6的偶数
- for(int i=3;i<=m/2;i++){//循环查找素数对
- if(prime(i)&&prime(m-i))//当满足i和m-i都为素数时,输出i和m-i
- printf("%d %d\n",i,m-i);
- }
- return 0;
- }
一个人没有完美,只有不断努力,才能无限接近完美。---------2023.11.20