目录
题目
小明发现了一个奇妙的数字.它的平方和立方正好把0~9的10个数字每个用且只用了一次.你能猜出这个数字是多少吗?
请填写该数字,不要填写任何多余的内容.
思路
一个数的平方数和立方数中正好有0-9,
首先先保证这个数的平方的位数加上立方的位数总共有10位,
再判断是否符合0-9每个数都有,且只用了一次
这里用的方法是:
建立一个含0-9的列表,
分别取出平方数和立方数各个位上的数字,
先将平方的各位数在列表中删去,
然后再删立方的各位数,如果发现其中一位数在列表中找不到,则证明有重复数的存在
代码
答案为69
def judge(a,b):
num=['0','1','2','3','4','5','6','7','8','9']
if len(a)+len(b)<10:
return False
for i in a:
if i in num:
num.remove(i)
else:
return False
for i in b:
if i in num:
num.remove(i)
else:
return False
return True
n=1
while 1:
a=str(n**2)
b=str(n**3)
if judge(a,b):
print(n)
break
else:
n+=1