7-6 驗證“哥德巴赫猜想”(20 分)
阿新 • • 發佈:2018-12-24
一、題目
二、個人理解
此題本質上就是考素數判斷。
思想很簡單,但是最大數會執行超時。這裡介紹一種簡單的素數,即只對奇數進行判斷,並對數進行一次開方。
在此我希望大家即使不掌握高深的素數判斷演算法,也應該掌握這個簡單又實用的演算法。
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;
}