Problem 15. 偶数拆成俩素数的拆法

Problem 15. 偶数拆成俩素数的拆法

题目简述:

    把一个偶数(值不会超过10000)拆成两个不同素数的和,求有多少种拆法。

解题思路:

    先定义一个函数int prime( ),用来判断一个数是否为素数,然后只需要判断两个数的和是否为这个偶数,并调用刚刚定义的那个函数判断这两个数是否为素数即可。

细节处理:

判断两个数的和只需定义一个变量j,另一个数即为n-1,就不必判断和是否为n了。

源代码:

#include<iostream>
#include<cmath>
using namespace std;
int prime(int a)
{
    for(int i=2;i<=sqrt(a);i++)
    {
        if(a%i==0)
        return 0;
    }
    return 1;
}
int main()
{
    int n,c;
    while(cin>>n)
    {
        c=0;
        if(n==0) break;
        else
        {
            for(int j=2;j<n/2;j++)
            {
                if(prime(j)&&prime(n-j))//调用函数prime
                c++;
            }
        }
        cout<<c<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43397186/article/details/85770406