1968: C/C++经典程序训练6---歌德巴赫猜想的证明
1968: C/C++经典程序训练6---歌德巴赫猜想的证明
Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 1165 Solved: 499
[Submit][Status][Web Board]
Description
写一个函数gotbaha, 验证“每个不小于6的偶数都是两个奇素数之和”,输入一个不小于6的偶数n,找出两个素数,使它们的和为n。
Input
输入一个不小于6的偶数n
Output
找出两个为素数,使它们的和为n。
Sample Input
80
Sample Output
80=7+73
HINT
主函数已给定如下,提交时不需要包含下述主函数
/* C代码 */
int main()
{
int n;
int gotbaha(int);
int prime(int);
scanf("%d",&n);
gotbaha(n);
return 0;
}
/* C++代码 */
int main()
{
int n;
int gotbaha(int);
int prime(int);
cin>>n;
gotbaha(n);
return 0;
}
#include<stdio.h>
#include<math.h>
int prime(int n)
{
int k,i;
k=sqrt(n);
for(i=2;i<=k;i++)
if(n%i==0)
break;
if(i==k+1)
return 1;
else
return 0;
}
int gotbaha(int n)
{
int prime(int n);
int a,b;
for(a=7;a<n;a++)
{
b=n-a;//设置b=n-a将b用a表示,这样对范围内的b不再逐一验证,不用再单独为b设置循环,循环次数下降//
if(prime(a)&&prime(b))
{
printf("%d=%d+%d",n,a,b);
break;
}
}
}
int main()
{
int n;
int gotbaha(int);
int prime(int);
scanf("%d",&n);
gotbaha(n);
return 0;
}

浙公网安备 33010602011771号