您的位置:首页 > 编程语言 > Go语言

poj 2262 Goldbach's Conjecture

2012-05-03 22:30 155 查看
//打表的时候竟然TLE,好囧啊!以为可以节省时间的!
//poj上面的题目就是比别的oj上的题目要难!加油!
#include "iostream"
#include "cmath"
#include "memory.h"
using namespace std;

bool is_primer(int num)
{
int i, n;
if (num == 1 || num == 0) return 0;
n = sqrt(double (num));
for (i = 2; i <= n; i++)
{
if (num % i == 0)
return 0;
}
return 1;
}
int primer[1000000];

int main()
{
int i, j = 0, number, a, b, max, temp1, temp2, temp3;
//for (i = 1; i <= 1000000; i++)
//{
//if (is_primer(i))
//{
// primer[j] = i;
// j++;
// }
//}
while (cin >> number)
{
if (number == 0) break;
max = -1;
for (i = 1; i <= number; i++)
{
if (is_primer(i))
{
temp1 = i;
temp2 = number - temp1;
if (temp2 < 0)  break;
if (is_primer(temp2))
{
int temp3 = temp2 - temp1;
if (max < temp3)
{
max = temp3;
a = temp1, b = temp2;
}
break;
}
}

}
if (max < 0)
cout << "Goldbach's conjecture is wrong." << endl;
else
cout << number << " = " << a << " + " << b << endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: