早教吧作业答案频道 -->其他-->
3.(哥德巴赫猜想)C++编程题,希望大家帮忙做做,只要程序就行,任何解释内容都不需要。以下是题目要求题目描述著名的哥德巴赫猜想是:每个不小于6的偶数都可以表示为两个奇素数之
题目详情
3.(哥德巴赫猜想)C++编程题,希望大家帮忙做做,只要程序就行,任何解释内容都不需要。 以下是题目要求
题目描述
著名的哥德巴赫猜想是:每个不小于6的偶数都可以表示为两个奇素数之和。例如,16=3+13=5+11。下面需要你来编程验证一下哥德巴赫猜想是否正确。
输入
在输入的若干行数据中,每行仅有一个偶数N(6<=N<=2000000000)。
输出
你需要输出N行数据,每行以升序输出两个素数,这两个素数的和等于输入中的那个偶数,如果有多种选择,输出乘积最大的,例如 N==16时,输出5 11,而不是3 13。当你发现偶数N不能拆分成两个素数时,请立刻放下手中的程序,直接到A9找院长,因为你和大连东软信息学院都将名垂青史。
样例输入
6
16
20
样例输出
3 3
5 11
7 13
题目描述
著名的哥德巴赫猜想是:每个不小于6的偶数都可以表示为两个奇素数之和。例如,16=3+13=5+11。下面需要你来编程验证一下哥德巴赫猜想是否正确。
输入
在输入的若干行数据中,每行仅有一个偶数N(6<=N<=2000000000)。
输出
你需要输出N行数据,每行以升序输出两个素数,这两个素数的和等于输入中的那个偶数,如果有多种选择,输出乘积最大的,例如 N==16时,输出5 11,而不是3 13。当你发现偶数N不能拆分成两个素数时,请立刻放下手中的程序,直接到A9找院长,因为你和大连东软信息学院都将名垂青史。
样例输入
6
16
20
样例输出
3 3
5 11
7 13
▼优质解答
答案和解析
#include
int prime(int n)
{
int i;
for(i=2;i<=n/2;i++){
if(n%i==0)return 0; }
if(i>n/2)return 1;
}
int main()
{
int n,i,j;
printf("Input n:");
scanf("%d",&n);
for(i=3;i<=n/2;i++)
if((prime(i)==1)&&(prime(n-i)==1))j=i;
printf("%d=%d+%d ",n,j,n-j);
return 0;
}
int prime(int n)
{
int i;
for(i=2;i<=n/2;i++){
if(n%i==0)return 0; }
if(i>n/2)return 1;
}
int main()
{
int n,i,j;
printf("Input n:");
scanf("%d",&n);
for(i=3;i<=n/2;i++)
if((prime(i)==1)&&(prime(n-i)==1))j=i;
printf("%d=%d+%d ",n,j,n-j);
return 0;
}
看了 3.(哥德巴赫猜想)C++编...的网友还看了以下:
英语翻译1,昨天他不让我吃饭.2,昨天他没让我吃饭.这两句话一个是“不”,一个是“没”,都表示否定 2020-05-16 …
电表和线路的问题新装了三个电表.第一个是前2楼第二个是前3楼第四个是后2楼和后3楼.每个电表都有2 2020-06-10 …
来源于历史故事的成语3个写几个含有近义词的成语3个含有修辞的成语比喻3来源于历史故事的成语3个写几 2020-06-10 …
17的各位上是(),表示()个一,十位上是()表示一个()个一是10.20里面有(17的各位上是( 2020-06-11 …
已知方程y^2-6ysin@-2x-9cos^2@+8cos@+9=0.求证,不论@如何变化,方程 2020-07-08 …
如图所示,三个电表M、N、T连接无误,两个电阻R1、R2完全相同且都正常工作.已知三个电表的示数分 2020-07-20 …
一共有12个方块,正面看一个4行、3列.第一列有3个正方形都表示有1个方块,第二列有4个正方形,上 2020-07-25 …
一堆苹果,2个2个地数剩1个,3个3个地数剩2个,4个4个地数剩3个,5个5个地数剩4个,6个6个地 2020-11-19 …
英语翻译是一些诗意的名称,尽量每个都在两到三个单词,意境符合中文所表达的就可以,不用落实到每个字的意 2020-12-01 …
全面抗战爆发后,中共和国民政府先后发表抗日通电和自卫宣言,共同的基本态度是()A.都表示两党合作,共 2020-12-08 …