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; 
} 

你可能感兴趣的:(水题)