Sum of three cubes for 42 finally solved -- using real life planetary computer
3 つの整数の 3 乗和が 42 になる解が見つかったとのこと。
なんで,42 なのかは興味がないので説明しない。
かなり大きな整数なので,R の普通の変数型 numeric(double) では扱えないので,gmp ライブラリを使う必要がある。
> library(gmp)
> x = as.bigz("-80538738812075974")
> y = as.bigz("80435758145817515")
> z = as.bigz("12602123297335631")
> ans = x ^ 3 + y ^ 3 + z ^ 3
> ans
Big Integer ('bigz') :
[1] 42
> x ^ 3
Big Integer ('bigz') :
[1] -522413599036979150280966144853653247149764362110424
> y ^ 3
Big Integer ('bigz') :
[1] 520412211582497361738652718463552780369306583065875
> z ^ 3
Big Integer ('bigz') :
[1] 2001387454481788542313426390100466780457779044591
Python の整数型は通常 64 ビット整数だが,必要に応じて精度が増やされる。ので,そのまま計算できる。
>>> x = -80538738812075974
>>> y = 80435758145817515
>>> z = 12602123297335631
>>> ans = x ** 3 + y ** 3 + z ** 3
>>> print("ans =", ans)
ans = 42
>>> x ** 3
-522413599036979150280966144853653247149764362110424
>>> y ** 3
520412211582497361738652718463552780369306583065875
>>> z ** 3
2001387454481788542313426390100466780457779044591
※コメント投稿者のブログIDはブログ作成者のみに通知されます