歌德巴赫猜想

试题描述

   任何大于2的偶数,都可以写成两个素数之和(俗称1+1)。
   给定一个偶数,输出它的猜想式子。
   例如:2008=5+2003(如果有多个表达式,输出前一个加数最小的表达式)

输入

   输入一个偶数n,且2 < n <= 10000。

输出

   输出满足歌德巴赫猜想的第一个加数最小的表达式。

输入示例

   2008

输出示例

   2008=5+2003

数据范围

   对于100%的数据,2 < n <= 10000

参考代码(非最简;易懂型)

#include<stdio.h>
int issushu(int num)
{
	for(int j=2;j<num;j++)
	{
		if(num%j==0) {
			return 0;
		}
	}
	return 1;
}
int sushu()
{
	int flag=1;
	static int su=2;
	if(su==2)
	{
		su=3;
		return 2;
	}
	for(int i=su;;i++)
	{
		flag=1;
		for(int j=2;j<su;j++)
		{
			if(i%j==0)
			{
				flag=0;
				break;
			}
		}
		if(flag) {su=i+1;return i;}
	}
}
int main()
{
	int m,n,q,p; 
	scanf("%d",&m);
	for(;;)
	{
		q=sushu();
		if(issushu(m-q))
		{
			printf("%d=%d+%d",m,q,m-q);
			return 0;
		}
	}
}
Code language: PHP (php)
 如未特殊声明,文章均为原创。
 本文标题:歌德巴赫猜想
 本文链接:https://manwish.cn/article/%e6%ad%8c%e5%be%b7%e5%b7%b4%e8%b5%ab%e7%8c%9c%e6%83%b3.html

留下评论