您的位置:首页 > 其它

7-6 验证“哥德巴赫猜想”(20 分)

2017-11-17 09:39 591 查看

一、题目



二、个人理解

此题本质上就是考素数判断。

思想很简单,但是最大数会运行超时。这里介绍一种简单的素数,即只对奇数进行判断,并对数进行一次开方。

在此我希望大家即使不掌握高深的素数判断算法,也应该掌握这个简单又实用的算法。

C语言:

#include <stdio.h>

int is_prime(int n)
{
if (n < 2) {
return 0;
}
if (n == 2 ) {
return 1;
}
if (n % 2 == 0) {
return 0;
}
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) {
return 0;
}
}
return 1;

}

int main()
{
int n;
scanf("%d", &n);
for (int i = 2; i < n ; i ++) {
if (is_prime(i)  && is_prime(n - i)) {
printf("%d = %d + %d", n, i, n - i);
break;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: