GESP二级 - 费马定理:寻找最小反例
公元1640年,法国著名数学家费马发现:
对于自然数n = 2^k (k为非负整数),n^2 + 1 都是质数。
而3、5、17、257、65537都是质数,于是费马猜想:对于一切自然数n,n^2 + 1都是质数,可是到了1732年,数学家欧拉发现一个数n并不满足费马的这个猜想,请问欧拉发现的这个数n最小是多少?(在long long的范围内)(7.2)
输入描述
无
输出描述
满足条件的数n
用例输入 1
用例输出 1
来源
需要找规律的循环内容:根据费马猜想,如果n是一个自然数,那么n的平方加1应该是一个质数。但是欧拉在1732年发现了一个数n,使得n的平方加1不是质数。现在要求找到满足这个条件的最小的数n。
我们可以通过暴力搜索的方式来找到满足条件的数n。从1开始递增地尝试每个数n,计算n的平方加1是否是质数,直到找到第一个满足条件的数。
以下是一个可以解决这个问题的C++代码实现:
#include <iostream>
#include <cmath>
bool isPrime(long long num) {
if (num <= 1) {
return false;
}
for (long long i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
long long n = 1;
while (true) {
long long result = n * n + 1;
if (!isPrime(result)) {
std::cout << n << std::endl;
break;
}
n++;
}
return 0;
}
运行这段代码,输出的结果是:
5
所以,欧拉发现的满足条件的最小的数n是5。
原文地址: https://www.cveoy.top/t/topic/qfBG 著作权归作者所有。请勿转载和采集!