C語言程式設計-1136-哥德巴赫猜想
阿新 • • 發佈:2018-11-03
Problem Description
驗證“每個不小於6的偶數都是兩個素數之和”,輸入一個不小於6的偶數n,找出兩個素數,使它們的和為n。
Input
輸入一個不小於6的偶數n。
Output
找出兩個素數,使它們的和為n。只需要輸出其中第一個素數最小的一組資料即可。
Sample Input
80
Sample Output
80=7+73
程式碼;
#include<stdio.h> #include<math.h> int prime(int x) //用來判斷 i 是否為素數 { int i; for (i = 2; i <= sqrt(x); i++) { if (x%i == 0) break; } if (i > sqrt(x)) return 1; else return 0; } int main() { int n, i; scanf("%d", &n); for (i = 3; i < n; i++) { if (prime(i) == 1 && i % 2 == 1 && prime(n - i) == 1 && (n - i) % 2 == 1) { printf("%d=%d+%d\n", n, i, n - i); break; } } return 0; }
難度不大主要是注意是兩個素數的和等於 n ,明確什麼是素數就行。
剛開始不明白 看了下兩位大佬的解法,寫了出來,不過連結找不到了(懶得找)。