1956 费马大定理扩展
- 1.0 秒
- 131,072.0 KB
- 5 分
- 1级题
费马大定理:对于 n>2n>2 ,不存在整数 x,y,z>1x,y,z>1 使得 xn=yn+znxn=yn+zn 满足。
但是对于 n=3n=3 的时候,是有可能存在 o,r,s,t>1o,r,s,t>1 ,使得 o3=r3+s3+t3o3=r3+s3+t3 成立的(比如 123=63+83+103123=63+83+103 )。
现在给定一个整数N,请列出所有满足条件的 {o,r,s,t}{o,r,s,t} 组合,其中 1<o≤N,1<r<s<t1<o≤N,1<r<s<t 。
收起
输入
单组测试数据。 第一行有一个整数N(1<N<=100)。
输出
输出所有可能的组合,按照{o,r,s,t}的字典序从小到大输出。 输出格式参照样例。如果没有找到合法解输出OMG。
输入样例
样例输入1 24
输出样例
样例输出1 (6,3,4,5) (12,6,8,10) (18,2,12,16) (18,9,12,15) (19,3,10,18) (20,7,14,17) (24,12,16,20)
解题思路:算是python输出和for循环的联系题目吧。
注意输出的时候{}里边的内容被format里边的代替。
for循环的range是左闭右开。
from math import *
def mysolve( b ):
res = []
for i in range(6, b):
for j in range(2, i-1):
for k in range(j, i-1):
for l in range(k, i):
if i*i*i == j*j*j + k*k*k + l*l*l:
res.append((i, j, k, l))
return res
n = input()
n = int(n)
ans = mysolve(n+1)
for i in range(0,len(ans)):
print('({},{},{},{})' .format(ans[i][0], ans[i][1], ans[i][2], ans[i][3]))
if len(ans) == 0 :
print("OMG")
转载:https://blog.csdn.net/weixin_40894017/article/details/101458420
查看评论