イントロ
リバースと追加は、見た目と同じくらい簡単n
で、逆の順序で数字に追加します。(例:234 + 432 = 666)。
このプロセスを繰り返し適用すると、いくつかの数字は最終的に素数にヒットし、一部は素数に到達しません。
例
私は現在持っています
11431担当者
11431 is not prime
11431 + 13411 = 24842 which is not prime
24842 + 24842 = 49684 which is not prime
49684 + 48694 = 98378 which is not prime
98378 + 87389 = 185767 which is prime!
この数は素数に当たります
対照的に、3の倍数は決して素数にヒットしません。これは、3のすべての倍数の桁の合計が3の倍数であるためです。したがって、3の倍数を反転して加算すると、常に3の新しい倍数になり、素数になることはありません。
仕事
正の整数n
を取り、繰り返し反転と加算が素数になるかどうかを判断します。真実または偽の値を出力します。の真理は素数に到達し、偽の値はそうではないか、またはその両方が許容されます。
素数はゼロ反復で素数に到達すると見なされます。
これはコードゴルフですので、コードをできるだけ短くしてください。
テストケース
プライムに到達する場合はtrueプライムに到達しない場合はfalse
11 -> True
11431 -> True
13201 -> True
13360 -> True
13450 -> True
1019410 -> True
1019510 -> True
22 -> False
1431 -> False
15621 -> False
14641 -> False
ヒント
このチャレンジを書いている間に、この問題をかなり簡単にするクールなトリックを発見しました。このトリックなしでは不可能ではなく、それでも簡単ではありませんが、助けになります。これを発見するのはとても楽しかったので、以下のネタバレのままにしておきます。
逆方向と追加を繰り返すと、6回以下の繰り返しで常に11の倍数になります。11の倍数に達する前に素数にヒットしない場合、素数にヒットすることはありません。