目录
一,费马大定理
1,费马大定理
当n>2时,(x,y,z>0)无解
2,等价表述
首先,费马大定理等价于,当n=4或奇素数p时,(x,y,z>0)无解
其次,因为无解,所以
无解,参考不定方程_nameofcsdn的博客-CSDN博客
所以,费马大定理等价于,当n为奇素数p时,(x,y,z>0)无解
二,证明概要
1,弗赖曲线
假如费马大定理不成立,即存在,p是奇素数,
则存在弗赖曲线:
PS:假如费马大定理成立,则不存在弗赖曲线
2,已知定理
弗赖曲线是一种半稳定的椭圆曲线。
弗赖曲线不是模形式的椭圆曲线。
3,怀尔斯定理
不存在不是模形式的半稳定椭圆曲线。
结合以上结论,用反证法得出,费马大定理成立。
三,OJ实战
CSU 1337 搞笑版费马大定理
题目:
Description
费马大定理:当n>2时,不定方程a^n+b^n=c^n没有正整数解。比如a^3+b^3=c^3没有正整数解。为了活跃气氛,我们不妨来个搞笑版:把方程改成a^3+b^3=c3,这样就有解了,比如a=4, b=9, c=79时4^3+9^3=793。
输入两个整数x, y, 求满足x<=a,b,c<=y的整数解的个数。
Input
输入最多包含10组数据。每组数据包含两个整数x, y(1<=x,y<=10^8)。
Output
对于每组数据,输出解的个数。
Sample Input
1 10
1 20
123 456789
Sample Output
Case 1: 0
Case 2: 2
Case 3: 16
代码:
#include<iostream>
#include<string.h>
using namespace std;
int dx[5] = { 0,2,3,4 ,1 }, dy[5] = { 7,5,6,9,8 };
int f(int x, int y)
{
int r = 0;
for (int i = 0; i < 5; i++)
{
for (int a = dx[i]; a*a*a <= y*10+3; a += 10)
{
if (a < x)continue;
if (a > y)break;
for (int b = dy[i]; b*b*b <= y * 10 + 3; b += 10)
{
if (b < x)continue;
if (b > y || a*a*a + b*b*b > y * 10 + 3)break;
if (a*a*a + b * b*b >= x * 10 + 3)r++;
}
}
}
return r;
}
int main()
{
int x, y, ca = 0;
while (cin >> x >> y)cout << "Case " << ++ca << ": " << f(x, y) * 2 << endl;
return 0;
}