哥德巴赫猜想
Time Limit:3000MS Memory Limit:655366K
Total Submit:292 Accepted:154
Description
著名的哥德巴赫猜想可以陈述为:任何一个不小于6的偶数一定可以拆成两个质数的和。如6=3+3,8=5+3等,你的任务是将一个大于6的偶数n拆成两个最接近的质数p,q,满足p+q=n.
Input
输入包含多组测试数据。每组数据包含1个偶数n(n在6到1000000之间包含边界)。
Output
对于每组测试数据,输出两个质数p,q(p<=q)满足p+q=n。
Sample Input
6
8
10
200000
Sample Output
3 3
3 5
5 5
99871 100129
Source
ahstu@ICPC03
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace AK1014 {
class Program {
static bool prime(int n)//判断素数
{
if (n == 1) return false;
if (n == 2) return true;
for (int i = 2; i * i <= n; i++)
if (n % i == 0) return false;
return true;
}
static void Main(string[] args) {
string sb;
while ((sb = Console.ReadLine()) != null) {
int n = int.Parse(sb);
for (int i = n / 2; i > 0; i--) {
if (prime(i) && prime(n - i)) {
Console.WriteLine("{0} {1}", i, n - i);
break;
}
}
}
}
}
}