哥德巴赫猜想
【输入形式】
输入大于2的偶数n
【输出形式】
对每一个偶数4, 6, 8, ..., n,依次输出一行。
该行内容是<偶数>=<素数1>+<素数2>,要求素数1是能够得到的素数中最小的,并且素数1<=素数2.
【样例输入】
20
【样例输出】
4=2+2
6=3+3
8=3+5
10=3+7
12=5+7
14=3+11
16=3+13
18=5+13
20=3+17
求大佬帮忙解答{:10_266:} {:10_266:} 感谢 这个比较简单
就 3 个 for 一嵌套 基本 ok
你应该会判断奇数偶数吧~,直接判断枚举出来的这 3 个数字是否符合要求,然后输出 #include<iostream>
using namespace std;
int sushu(int x)
{
if(x<1) return 0;
if(x==2) return 1;
for(int i=2;i<=x-1;i++)
if(x%i==0) return 0;
return 1;
}
int main()
{
int i,j,n;
cin>>n;
for(i=4;i<=n;i+=2)
{
for(j=2;j<i;j++)
if(sushu(j))
if(sushu(i-j))
{
cout<<i<<"="<<j<<"+"<<i-j;
break;
}
}
return 0;
}
这样应该可以的吧:
prime =
n = int(input('请输入大于2的偶数:'))
for i1 in range(2,n):
k = int(i1**0.5)
for i2 in range(2,k+2):
if i1%i2 == 0:
break
else:
prime.append(i1)
for each in range(2,n+1,2):
for i1 in prime:
for i2 in prime:
if i1 + i2 == each and i1 <= i2:
print(f'{each}={i1}+{i2}')
break
if i1 + i2 == each and i1 <= i2:
break
页:
[1]