结果输出有问题,例如12=5+7,但代码只能实现3+9;希望指正问题。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int ss(int n);//判断素数
int ss(int n)
{
int i;
if(i%2!=0)
for(i=2;i<=sqrt(n);i++)
{
if(n%i!=0)
return 0;
}
return 1;
}
int main()
{
int n,i;
printf("Input a number:\n");
scanf("%d",&n);
if(n%2!=0)
printf("Input error!\n");
else if(n==4)
printf("4=2+2");
else{
for(i=3;i<n-i;i=i++)
{
if(ss(i)&&ss(n-i))
{
printf("%d=%d+%d\n",n,i,n-i);
break;
}
}
}
return 0;
}
#include<stdio.h>
int main()
{
int n, p, q; int i, j; int t = 0; int a[669];
printf("验证哥德巴赫猜想\n");
printf(" 请输入一个(2, 5000]范围内的偶数n: ");
scanf("%d", &n);
for (j = 2; j <= 5000; j++)
{
for (i = 2; i <= j; i++)
{
if (j % i == 0 && j == i)
{
a[t] = j;
t++;
}
else if (j % i == 0 && i < j)
{
break;
}
}
}
for (p = 0; p < 669; p++)
{
for (q = 0; q < 669; q++)
{
if (n == a[p] + a[q]) { printf(" 结果: %d = %d + %d", n, a[p], a[q]); goto ok; }
}
}
ok:return 0;
}
C++:
#include <bits/stdc++.h>
using namespace std;
int check(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(){
for(int i=6;i<=100;i+=2){
for(int j=2;j<i;j++){
if(check(j)){
if(check(i-j)){
cout<<i<<"="<<j<<"+"<<i-j<<endl;
break;
}
}
}
}
}
Python:
def IsPrime(x):
if (x <= 1):
return 0
if (x == 2):
return 1
for a in range(2, x):
if (x % a == 0):
return 0
return 1
for b in range(6, 101, 2):
for c in range(2, b):
if (IsPrime(c) and IsPrime(b - c)):
print(b, '=', c, '+', (b - c))
break