1. 程式人生 > >c/c++程式設計題 之 驗證哥德巴赫猜想

c/c++程式設計題 之 驗證哥德巴赫猜想

驗證哥德巴赫猜想

題目描述

哥德巴赫猜想:任何一個大於6的偶數均可表示為兩個素數之和。輸入兩個整數m,n(6小於等於m,m小於等於n,n小於等100),將m,n之間的偶數表示成兩個素數之和

 

輸入描述

輸入兩個大於6的正整數分別給m和n。

 

輸出描述

輸出m和n之間所有偶數表示成的兩個素數之和。

 

輸入樣例

8 10
 

輸出樣例

8=3+5
10=3+7
AC程式碼如下:
#include "iostream"
#include "cstdio"
#include "algorithm"
#include "cstring"
#include "cstdlib"
#include "cmath"
using namespace std;
int fun(int n)
{ 
	int flag=1; 
	for (int i=2;i<=sqrt(n);i++)
	{
		if (n%i==0) 
		{ 
			flag=0; 
			break;
		} 
	}
	if(flag==1)
		return 1;
	else
		return 0; 
} 
void print(int n,int sum) 
{ 
	printf("%d=%d+%d\n",sum,n,sum-n);
} 
int main(int argc, char* argv[]) 
{ 
	int n,m,i,j;
	while(cin>>n>>m)
	{ 
		for (j=n;j<=m;j++) 
		{ 
			if (j%2==0) 
			{ 
				for (i=2;i<=j/2;i++) 
				{ 
					if (fun(i) && fun(j-i))
					{ 
						print(i,j); 
						break; 
					} 
				} 
			} 
		}
	} 
	return 0; 
}