2884 - 现代版哥德巴赫猜想

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

哥德巴赫猜想用现代数学方法陈述即:任一大于5的整数都可写成三个素数之和。这一猜想至今为止还未完全证明。

在一定范围内,我们可以用计算机编程来验证它,请你试一试!

题目输入

一行:一个整数n (5<n<1000000)

题目输出

一行:3个素数,中间用空格隔开。第一、二个为最小可能素数。

输入/输出样例

输入格式

8

输出格式

2 3 3

C++解答

#include<cstdio>
#include<cmath>
bool pd(int x)
{
	if(x<2) return false;
	for(int i=2;i<=sqrt(x);i++)
		if(x%i==0) return false;
	return true;
}
int main()
{
	int n;
	scanf("%d",&n);
	for(int i=2;i<=n/3;i++)
		for(int j=i;j<=n-i;j++)
			if(pd(i)&&pd(j)&&pd(n-i-j))
			{
				printf("%d %d %d",i,j,n-i-j);
				return 0;
			} 
}