1. 程式人生 > >C語言程式設計-1136-哥德巴赫猜想

C語言程式設計-1136-哥德巴赫猜想

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 ,明確什麼是素數就行。
剛開始不明白 看了下兩位大佬的解法,寫了出來,不過連結找不到了(懶得找)。