哥德巴赫猜想C语言实现

结果输出有问题,例如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