观察给出的例子,我们可以发现满足费马猜想的数n必须是一个素数。所以我们可以通过遍历自然数n并判断n+1是否为素数来找到满足条件的最小数。

具体实现如下:

#include <iostream>

using namespace std;

bool isPrime(int num) {
    if (num <= 1) return false;
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) return false;
    }
    return true;
}

int main() {
    int n = 1;
    while (true) {
        if (isPrime(n + 1)) {
            cout << n << endl;
            break;
        }
        n++;
    }
    return 0;
}

时间复杂度分析: 对于每个n,我们需要判断n+1是否为素数,判断一个数是否为素数的时间复杂度为O(sqrt(n+1))。所以总的时间复杂度为O(n * sqrt(n))。

在给定的范围内,这个算法的时间复杂度是可以接受的

【GESP二级】费马定理暂无标签时间限制:CC++ 1000MS其他语言 2000MS内存限制:CC++ 16MB其他语言 32MB难度:中等出题人:描述公元1640年法国著名数学家费马发现:而3、5、17、257、65537都是质数于是费马猜想:对于一切自然数n+1都是质数可是到了1732年数学家欧拉发现一个数n并不满足费马的这个猜想请问欧拉发现的这个数n最小是多少? 在long long的范围

原文地址: https://www.cveoy.top/t/topic/iypr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录