习题 4.7 写一个函数验证哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和,如6=3+3,8=3+5,10=3+7···在主函数中输入一个不小于6的偶数n,然后调用函数gobaha···

C++程序设计(第三版) 谭浩强 习题4.7 个人设计

习题 4.7 写一个函数验证哥德巴赫猜想:一个不小于6的偶数可以表示为两个素数之和,如6=3+3,8=3+5,10=3+7···在主函数中输入一个不小于6的偶数n,然后调用函数gobaha函数中再调用prime函数,prime函数的作用是判别一个数是否为素数。在gobaha函数中输出以下形式的结果:34=3+31。

代码块:

#include <iostream>
using namespace std;
void gobaha(int n);                  //定义函数gobaha
int prime(int n);                    //定义prime函数
int main()
{
    int num;
    cout<<"Please enter number: ";
    cin>>num;
    for (; num<6||(num%2)!=0; ){                          //如果输入数字不符合条件重复执行输入
        cout<<"Error! Retry!\nPlease enter number: ";
        cin>>num;
    }
    gobaha(num);
    system("pause");
    return 0;
}
int prime(int n)
{
    int i;
    for (i=2; i<n&&(n%i!=0); i++);
    return n==i ? 1 : 0;                      //判断是否为素数,是返回1,否返回0
}
void gobaha(int n)
{
    int m, i;
    for (i=3; i<n; i++)
        if (prime(i)==1){
            m=n-i;
            if (prime(m)==1&&i<=m)
                cout<<n<<'='<<i<<'+'<<m<<endl;
        }
}

猜你喜欢

转载自blog.csdn.net/navicheung/article/details/81233890
今日推荐