哥德巴赫猜想
成绩: 5 / 折扣: 0.8
题面描述:
如图所示:魔法学院的图书馆珍藏着一份1742年德国中学教师哥德巴赫写给大数学家欧拉的珍贵手稿,这就是世界近代三大数学难题之哥德巴赫猜想。即任何一个大于 6的偶数都可以表示成两个素数之和;任何一个大于9的奇数都可以表示成三个素数之和。 1966年,中国数学家陈景润证明了“任何一个充分大的偶数都可以表示成一个素数与另一个素因子不超过2个的数之和”,简称“1+2”。
试验证2000以内的正偶数都能够分解为两个素数之和(即验证哥德巴赫猜想对2000以内的正偶数成立)。
输入:
若干个2001以内的正偶数,如上所述。
输出:
标准输出,输出所给正偶数的素数之和,每个占一行,如4=2+2。如果有多种可能,只输出一种,即第一个素数最小的。
示例输入:
4
6
8
示例输出:
4=2+2
6=3+3
8=3+5
测试用例 1 以文本方式显示
422↵
1932↵
1182↵
86↵
1880↵
以文本方式显示
422=3+419↵
1932=19+1913↵
1182=11+1171↵
86=3+83↵
1880=3+1877↵
1秒 无限制 0
供参考:
#include <stdio.h>
int isPrime(int n)
{
int i;
if (n <= 3) return n > 1;
for (i = 2; i * i <= n; i++)
if (n % i == 0) return 0;
return 1;
}
int main()
{
int i, n;
while (scanf("%d", &n) == 1 && n <= 2000 && n > 0)
{
for (i = 2; i <= n / 2; i++) {
if (isPrime(i) && isPrime(n - i))
{
printf("%-d=%-d+%-d\n", n, i, n - i);//输出
break;
}
}
}
return 0;
}