考虑x^i+y^i=z^i,x<;=y<;=z<;=m和2<;=i<;=n(m和n是输入)m可以从5到100变化n可以从2到100变化
这是它的c程序
int main()
{
int m, n;
long long int x, y, z, j;
long long int xe, ye, ze, se;
long long int sum = 0;
scanf("%d", &m);
scanf("%d", &n);
for (j = 2; j <= n; j++)
{
for (x = 0; x <= m; x++)
{
for (y = x; y <= m; y++)
{
for (z = y; z <= m; z++)
{
xe = pow(x, j);
ye = pow(y, j);
ze = pow(z, j);
se = (xe + ye);
if (ze == se)
{
printf("\n i = %lld", j);
sum++;
}
}
}
}
}
printf("sum= %lld ", sum);
return 0;
}
因为它不适用于大值(我不想使用大整数:p) 我写了一个与之相当的python--
import math
m=0
n=0
x=y=z=j=0
xe=ye=ze=se=0
sum=0;
m = int(input("Enter a number: "))
n = int(input("Enter a number: "))
for j in range (2, n):
for x in range (0, m):
for y in range (x, m):
for z in range (y, m):
xe=math.pow(x,j)
ye=math.pow(y,j)
ze=math.pow(z,j)
se=(xe+ye)
if (ze == se):
sum=sum+1
print "sum=", sum
但它也不起作用。有人能告诉我为什么吗?你知道吗
有一个流行的数学定理Fermat's Great (Last) Theorem,它指出任何整数
n > 2
都不存在非零整数a
、b
、c
,这样a^n + b^n = c^n
。你知道吗你刚才有个语法错误。以下是对我有效的方法:
我正在测试输入
m = 100
n = 10
,结果是850
。你知道吗不过,如果你想验证费马的最后一个定理:
用这个^。你知道吗
相关问题 更多 >
编程相关推荐