パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

超難問 素数異世界の黄昏

2022-05-17 | 2日でPython3

素数の値が別の素数に入れ替わった世界とこの世界間の数値の情報の

違いから、この世界の ある数値の異世界値を求める問題

 

例えば素数の7が異世界の素数(以後 異素数)で5とする。すると、この

世界の49は異世界だと25になる。

 

この世の1以上の整数は何らかの素数の掛け合わせの組み合わせだから

その素数を別の素数に入れ替えて別の数字を作ってしまおうとする試み

 

実際の問題はこちら

https://www.codingame.com/training/expert/prime-transformations

CodinGameのVery Hardの問題はこれまで4題しか解けていない。挑戦

中も3題しかない。自分に取って挑戦すら、ためらわれるものらしい。

 

最初の数問はちょっとした推理と勘みたいなもので解ける。

 

しかしこんなものがあり見ただけでやる気をごっそりもっていかれる。

29
3
25198166700 72772028444340379
1356501307350 330833459679665327
2920467520530 78604642094119757

 

意味は29が素数の入れ替わった異世界ではいくつ?

手がかりは

25198166700なら 72772028444340379
1356501307350なら 330833459679665327
2920467520530なら 78604642094119757

になります。

 

解いている最中に腹ごしらえをしようとすると差し歯が抜けて、こん

ちくしょう(涙目)という全てをバネにして、翌朝歯医者に行って治療

してからも続けてやっと解けました。

 

1 まず素因数分解をする。その前に素数一覧を作成しておく 1枚目

2 問題の数値を全て素因数分解したデータをもたせメインループで組

み合わせを確定していく 3枚目

3 素因数分解した数値の数が同じものが1つしかない場合その組み

合わせを確定とする。さらに組み合わせが同じものを複数ならべ容疑者

を絞り込む。最後にアリバイの完全に容疑者を問い詰める 2枚目

2重の準備をして3重の解法を重ね合わせてなんとか異世界の住人を

発見することに成功しました。文章も途中から異世界に行ってしまった

感がありますが、難問に挑む際は広くモチベーションをもつための余暇

のような妄想も必要かなとか思ったりしてました。

 


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。