1968: C/C++经典程序训练6歌德巴赫猜想的证明

1968: C/C++经典程序训练6---歌德巴赫猜想的证明

Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 1165  Solved: 499
[Submit][Status][Web Board]

Description

写一个函数gotbaha, 验证“每个不小于6的偶数都是两个奇素数之和”,输入一个不小于6的偶数n,找出两个素数,使它们的和为n。

Input

输入一个不小于6的偶数n

Output

找出两个为素数,使它们的和为n。

Sample Input

80

Sample Output

80=7+73

HINT

 主函数已给定如下,提交时不需要包含下述主函数


/*  C代码  */


int main()


{


    int n;


    int gotbaha(int);


    int prime(int);


    scanf("%d",&n);


    gotbaha(n);


    return 0;


}



/*  C++代码  */


int main()


{


    int n;


    int gotbaha(int);


    int prime(int);


    cin>>n;


    gotbaha(n);


    return 0;


}

#include<stdio.h>
#include<math.h>
int prime(int n)
{
    int k,i;
    k=sqrt(n);
    for(i=2;i<=k;i++)
        if(n%i==0)
            break;
    if(i==k+1)
        return 1;
    else
        return 0;
}
int gotbaha(int n)
{
    int prime(int n);
    int a,b;
    for(a=7;a<n;a++)
    {
        b=n-a;//设置b=n-a将b用a表示,这样对范围内的b不再逐一验证,不用再单独为b设置循环,循环次数下降//
        if(prime(a)&&prime(b))
        {
            printf("%d=%d+%d",n,a,b);
            break;
        }
    }
}
int main()


{


    int n;


    int gotbaha(int);


    int prime(int);


    scanf("%d",&n);


    gotbaha(n);


    return 0;


}

  

原文地址:https://www.cnblogs.com/mjn1/p/8443205.html