c ++ 验证哥德巴赫猜想

哥德巴赫猜想是:任一大偶数可以表示为两个素数之和。试编程C++验证该猜想:任给一个偶数,找出两个素数,其和等于该偶数。以6~100范围内的所有偶数进行验证。对于每一个偶数,如果满足这一命题,输出该偶数及找到的两个素数;如果不满足这一命题,仅输出该偶数

代码如下:

#include <iostream>
using namespace std;

//判断是n是否是素数
int prime(int n)
{
    int i;
    for(i=2;i<n;i++)
    {
        if(n%i==0)
            break;
    }
    if(i==n) return 1;
    return 0;
}

int main()
{
    int i,j,a,b;
    int flag;
    for (i=6;i<=100;i+=2) //遍历6-100的所有偶数
    {
        flag = 0;
        for (j = 2;j<i;j++) 
        {
            if( prime(j) && prime(i-j) ) //判断j和i-j是否是素数
            {
                cout << i << "=" << j << "+" << i-j<<endl;
                flag = 1;
                break;
            }
        }
        if(flag == 0) //如果不满足,仅输出改偶数
            cout << i << endl;
    }
    return 0;
}