哥德巴赫猜想
显示标签
时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 256MB,其他语言 512MB
难度:入门
出题人:
描述
哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。
输入描述
(无)
输出描述
分行输出:
例如:
6=3+3
8=3+5
(每个数只拆开一次,请保证第一个加数最小)
样例输入 1
(无)
样例输出 1
(无)
哥德巴赫猜想
显示标签
时间限制:C/C++ 1000MS,其他语言 2000MS
内存限制:C/C++ 256MB,其他语言 512MB
难度:入门
出题人:
描述
哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。
输入描述
(无)
输出描述
分行输出:
例如:
6=3+3
8=3+5
(每个数只拆开一次,请保证第一个加数最小)
样例输入 1
(无)
样例输出 1
(无)
程序参考
#include <cmath>
#include <iostream>
using namespace std;
int prime(int n)
{
int i, k;
k = (int)sqrt((double)n); //提高效率
if (n < 2) // 2以下不能是素数
return 0;
for (i = 2; i <= k; i++)
{
if (n % i == 0)
return 0;
}
return 1;
}
int main(void) //哥德巴赫猜想
{
int i, j;
const int n = 100;
for (i = 6; i <= n; i += 2)
for (j = 2; j < i; j++)
if (prime(j) && prime(i - j))
{
cout << i << "=" << j << "+" << i - j << endl;
break;
}
return 0;
}