Intro
Membalik dan menambahkan sesederhana kedengarannya, ambil n
dan tambahkan ke digitnya dalam urutan terbalik. (mis. 234 + 432 = 666).
Jika Anda menerapkan proses ini berulang kali beberapa angka pada akhirnya akan mencapai angka prima, dan beberapa tidak akan pernah mencapai angka prima.
Contoh
Saat ini saya punya
11431 rep.
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!
Jumlah ini mencapai prima
Sebaliknya setiap kelipatan dari 3 tidak akan pernah mencapai prima, ini karena semua kelipatan dari 3 memiliki jumlah digit yang merupakan kelipatan dari 3 dan sebaliknya. Dengan demikian membalikkan dan menambahkan kelipatan 3 akan selalu menghasilkan kelipatan baru 3 dan karenanya tidak pernah prima.
Tugas
Ambil bilangan bulat positif n
dan tentukan apakah pembalikan berulang dan penambahan akan menghasilkan bilangan prima. Keluarkan nilai yang benar atau salah. Entah kebenaran untuk mencapai nilai prima dan palsu untuk tidak atau sebaliknya keduanya dapat diterima.
Bilangan prima akan dianggap mencapai bilangan prima dalam iterasi nol.
Ini kode-golf, jadi cobalah membuat kode Anda sesingkat mungkin.
Uji Kasus
Benar untuk mencapai yang utama salah untuk tidak pernah mencapai yang utama
11 -> True
11431 -> True
13201 -> True
13360 -> True
13450 -> True
1019410 -> True
1019510 -> True
22 -> False
1431 -> False
15621 -> False
14641 -> False
Petunjuk
Sementara saya menulis tantangan ini, saya menemukan trik keren yang membuat masalah ini jauh lebih mudah. Bukan tidak mungkin tanpa trik ini dan juga tidak sepele dengan trik ini, tetapi itu memang membantu. Saya sangat senang menemukan ini jadi saya akan membiarkannya di spoiler di bawah ini.
Terbalik terbalik dan tambah akan selalu menekan kelipatan 11 dalam 6 iterasi atau kurang. Jika tidak mencapai prime sebelum mencapai multiple 11, itu tidak akan mencapai prime.