top1编程
← 返回题目
题解

【入门】费马定理

1 条题解

  • 0
    @ 2026-7-31 16:01:20

    解题思路

    费马猜想:费马数 F_n = 2^(2^n) + 1 都是质数。欧拉推翻了它,找到一个 n 使 F_n 不是质数,问最小的 n 是多少。

    结论:n=5。

    • F_0 = 2^1 + 1 = 3(质数)
    • F_1 = 2^2 + 1 = 5(质数)
    • F_2 = 2^4 + 1 = 17(质数)
    • F_3 = 2^8 + 1 = 257(质数)
    • F_4 = 2^16 + 1 = 65537(质数)
    • F_5 = 2^32 + 1 = 4294967297 = 641 × 6700417(不是质数!)

    所以最小的反例是 n=5。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        // 费马数 F_5 = 2^32+1 = 4294967297 = 641×6700417,不是质数
        cout << 5;
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:O(1)
    • 空间复杂度:O(1)
    • 1