Problem 13 哥德巴赫猜想

  • 题目描述:

   把一个偶数拆成两个不同素数的和,有几种拆法呢?值不会超过10000,个数不会超过500,若遇0,则结束。

  • 思路:

由于值不超过10000,所以可以用枚举的思想,检验每一个符合条件的素数。

  • 细节:

这个题就是哥德巴赫猜想的变形,处理好判断素数的函数是关键。本题要求为不同的素数,所以要去除素数相同的情况。

  • 源代码:
    #include
    #include
    using namespace std;
    bool zhishu(int n)
    {
    	int x=0;
    	for(int i=2;i<=sqrt(n);i++)
    	if(n%i==0)
    	return false;
    	return true;
    }
    int main()
    {
    	int n;
    	while(cin>>n)
    	{
    		if(n==0)
    		break;
    		int x=0;
    		for(int i=2;i<=n/2;i++)
    		{
    			if(zhishu(i))
    			{
    				int j;
    				j=n-i;
    				if(zhishu(j))
    				if(j!=i)
    				x++;
    			}
    		}
    		cout<

     

你可能感兴趣的:(解题报告)