哥德巴赫的验证

来源:互联网 发布:effective java百度云 编辑:程序博客网 时间:2024/06/05 16:18

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

Input

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

Output

找出两个素数,使它们的和为n。只需要输出其中第一个素数最小的一组数据即可。

Example Input

80

Example Output

80=7+73



#include <iostream>  

#include<math.h>
using namespace std;  
int gdbh(int n)  
{  
    int prime(int );  
    int a,b;  
    for (a=3;a<=n/2;a=a+2)  //a从3开始就行了,因为不可能有2;步长设为2,因为a不可能是偶数
    {  
        if(prime(a))  
        {  
            b=n-a;  
            if (prime(b))  
            {  
                cout<<n<<"="<<a<<"+"<<b<<endl;  
                break;  
            }  
        }  
    }  
}  
int prime(int m)  
{  
    int i,k=sqrt(m);  
    for (i=2;i<=k;i++)  
        if (m%i==0)  
        break;  
    if (i>k) return 1;  
    else return 0;  
}  
  
int main()  
{  
    int n;  
    int gdbh((int);  
    int prime(int);  
    cin>>n;  
    gdbh(n);  
    return 0;  
  
}  
原创粉丝点击