注册 登录
编程论坛 C语言论坛

哥德巴赫猜想

黑暗骑士5DSB 发布于 2021-03-06 14:33, 1961 次点击
哥德巴赫猜想是:任何一个大于2的偶数可以写为两个质数之和。下面这段程序验证这个猜想,对于输入的大于2的偶数,给出其等于两个质数之和的算式;对于非法输入,给出输入无效的提示。
#include <stdio.h>
int isPrime(int num){
    for(int i=2; i<=num/2; i++)
        if(  num%i==0) return 0;
        return 1;
}
int main( ){
    int a;
    for(int i=0; i<4; i++){   //共进行4次验证
        scanf("%d",&a);  //输入一个整数
        if(  isPrime(a)==1) printf("Invalid Input\n"); // 输入有效性验证
        else for(int i=2; i<=a/2; i++)
                if( 请补充     ){
                    printf("%d = %d + %d\n", a, i, a-i);
                    break;
                }
    }
    return 0;
}

上面请补充应该填什么
2 回复
#2
apull2021-03-06 15:38
isPrime(i) && isPrime(a-i)
#3
k35522022-04-17 15:11
回复 楼主 黑暗骑士5DSB
#include <stdio.h>

int main()
{
    int N,i,j;
    scanf("%d",&N);

    for(j=2;j<=N/2;j++)
    {
        for(i=2;i<j; i++)
        {
            if(j%i==0)
                break;
        }
        if(i==j)
        {
            for(i=2;i<N-j; i++)
            {
                if((N-j)%i==0)
                    break;
            }
            if(i==(N-j))
            {
                printf("%d = %d + %d\n",N,i,j);
            }
        }
    }

    return 0;
}
1