1968: C/C++經典程序訓練6---歌德巴赫猜想的證明
阿新 • • 發佈:2018-02-11
scanf 單獨 main return bbs spa pid ret pro
Submit: 1165 Solved: 499
[Submit][Status][Web Board]
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; }
1968: C/C++經典程序訓練6---歌德巴赫猜想的證明