トピック:
アメリカの数学者N.ウィーナーは早熟で、11歳で大学に進学しました。彼は1935年から1936年まで中国の清華大学で講義をするよう招待されました。
かつて、彼は重要な会議に出席し、彼の若い顔は目を引くものでした。そこで誰かが彼の年齢について尋ねると、彼は答えました:
「私の年齢の立方体は4桁の数字です。私の年齢の4乗は6桁の数字です。これらの10桁にはたまたま0から9までの10桁が含まれています。それぞれが1回だけ登場しました。」
当時の彼の若さを計算してください。
解決:
逆解を使用すると
、10の3乗は4桁の数字で
、30の3乗は5桁の数字です。
したがって、ウィーナーの年齢は10〜30歳です
。1つずつ比較してください。
最初に0〜9を含むリストで
、10から始めて
みてください。
年齢の3乗および4乗のクエリごとに、年齢の各桁が0〜9
と比較され、各比較の結果が削除されます。
最終的なリストが空の場合、0〜9をすべて削除すると
、この年齢はその時点のWiener年齢になります
コード:
for i in range(10, 30):
number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
age_1 = list(str(i ** 3))
age_2 = list(str(i ** 4))
for j in age_1:
try:
number.remove(int(j))
except:
pass
else:
pass
for y in age_2:
try:
number.remove(int(y))
except:
pass
else:
pass
if not number:
print(i)
break
回答: