题目:
验证任意一个大于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;
}
运行结果如下: