程序基本算法习题解析 验证任意一个大于5的奇数可以表示为3个素数之和

题目:

验证任意一个大于5的奇数可以表示为3个素数之和。

附上代码:

// Chapter1_9.cpp : Defines the entry point for the application.
// 验证任意一个大于5的奇数可以表示为3个素数之和

#include "stdafx.h"
#include<iostream>
#include<math.h>
using namespace std;
//判断是否为素数(输入大于2)
int isPrime(int x)
{
	int i=2,bound = int(sqrt(float(x)));//只需判断到平方根即可
	while(i<=bound)
	{
		if(x%i == 0)
			return 0;  //不为素数,返回0
		i++;
	}
	return 1;  //为素数,返回1
}
int main()
{
	int odd,x,y,z; //odd为用户输入数据,x,y,z分别为三个数
	cout << "input an odd bigger than 5: ";
	cin >> odd;
	for(x=3;x<odd;x++)
	{
		for(y=3;y<odd;y++)
		{
			for(z=3;z<odd;z++)
			{
				//当x,y,z均为素数且其和等于用户输入的数时
				if(isPrime(x) && isPrime(y) && isPrime(z) && (odd == x+y+z))
					cout << odd << " = " << x << " + " << y << " + " << z << endl;
			}
		}
	}
	system("pause");
	return 0;
}

运行结果如下:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值