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

一、题目

7-6 验证“哥德巴赫猜想”(20 分)_第1张图片

二、个人理解

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

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

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


C语言:

#include 

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;
        }

你可能感兴趣的:(C语言辅导)