【发布时间】:2013-06-12 12:22:00
【问题描述】:
我正在接受this 费马大定理的定义。
我尝试编写一个算法来验证它是否适用于小值:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
//a^n + b^n = c^n
int a, b, c, n, count = 0;
for (n = 3; n < 1000; n++)
for (a = 1; a < 1000; a++)
for (b = 1; b < 100; b++)
for (c = 1; c < 1000; c++)
{
if (a != b && b != c && a != c)
{
if (pow(a,n) + pow(b,n) == pow(c,n))
{
cout << "\na: " << a << " b: " << b << " c: " << c << " n: " << n;
count++;
}
}
}
cout << count << " combinazioni";
}
这是一段输出的屏幕:
这怎么可能?我是否在 C++ 编程中遗漏了一些可能会得到错误结果的“大整数”?
【问题讨论】:
-
你知道math.stackexchange.com的数学论坛吗?
-
我认为你想收集经验证据,直到 ℤ 中的某个 n,而不是证明。 @MarcAudet 我认为如果我们抛弃整个证明业务,这仍然是一个溢出问题。
-
@MarcAudet 任何包含代码的问题通常与Mathematics 无关。
-
暴力证明需要无限长的时间才能完成。
-
提示:
cout << pow(c, n) <<endl;