Pertimbangkan nomor 99999999. Angka itu jelas merupakan palindrom. Faktor prima terbesar dari 99999999 adalah 137. Jika Anda membagi 99999999 dengan 137, Anda mendapatkan 729927. Angka ini juga merupakan palindrom.
Faktor prima terbesar dari 729927 adalah 101. 729927/101 = 7227 yang lagi merupakan palindrome.
Faktor prima terbesar dari 7227 adalah 73. 7227/73 = 99 yang lagi merupakan palindrome.
Dengan membagi lebih lanjut dengan faktor prima terbesar, Anda mendapatkan 9, 3 dan akhirnya 1, yang, sebagai angka satu digit, juga merupakan palindrom. Karena 1 tidak memiliki faktor prima, prosedur berakhir di sini.
Sekarang menggeneralisasi pengamatan ini, saya mendefinisikan super-palindrome sebagai palindrome yang merupakan 1, atau yang memberikan super-palindrom jika dibagi oleh faktor prima terbesarnya.
Kredit: /math/200835/are-there-infinitely-many-super-palindromes
Diberi nomor N , tentukan apakah itu palindrom super atau tidak, dan cetaklah nilai yang benar atau salah.
Program Anda harus mencetak nilai kebenaran untuk input ini:
1
101
121
282
313
353
373
393
474
737
919
959
1331
1441
2882
6446
7887
8668
9559
9779
Program Anda harus mencetak nilai falsey untuk input ini:
323
432
555
583
585
646
642
696
777
969
989
2112
3553
4554
5242
5225
5445
8080
8118
9988
Ingat, ini adalah kode-golf , jadi kode dengan jumlah byte terpendek akan menang.
sumber
N
selalu menjadi palindrome untuk memulai?Jawaban:
Jelly ,
131298 byteCobalah online! atau verifikasi semua kasus uji .
Bagaimana itu bekerja
sumber
Mathematica, 64 byte
Fungsi yang tidak disebutkan namanya, kembali
True
atauFalse
. Membentuk daftar dengan mulai dari input, lalu mengulangi fungsi "saya dibagi dengan faktor prima terbesar saya" sampai output tidak berubah. (Untungnya, Mathematica sekarang menganggap faktor prima terbesar 1 adalah 1.) Kemudian menguji apakah entri daftar adalah palindrom (yay built-in! Panjang nama fungsi boo!) DanAnd
s semuanya bersama-sama.sumber
FactorInteger[1]
keanehan denganFixedPoint
Mathematica, 51 byte
Fungsi anonim rekursif. Mengambil angka sebagai input dan mengembalikan
True
atauFalse
sebagai output.sumber
05AB1E ,
98 byteMenyimpan satu byte, terima kasih kepada Adnan .
Cobalah online!
Penjelasan
n = 7227
digunakan sebagai contohsumber
Ò.pPDíïQ
juga harus bekerja.Pyth -
1512 byteKocok Jelly: P: /Sayangnya, semua peta implisit tersebut tidak menjadi lebih pendek ketika digabungkan menjadi yang eksplisit karena yang terakhir adalah percikan otomatis.
Test Suite .
Mendapat semua awalan dari faktorisasi utama, produk yang akan menjadi palindrom super menengah, dan memeriksa apakah semuanya merupakan palindrom.
sumber
Mathematica,
7163 bytePenjelasan
Faktor input. (misalnya
8668 -> {{2, 2}, {11, 1}, {197, 1}}
; untuk setiap daftar dalam output, elemen pertama adalah faktor utama, dan yang kedua adalah kekuatan.Untuk setiap pasangan faktor daya, duplikat elemen pertama dengan elemen kedua, dan ratakan semuanya. (
{{2, 2}, {11, 1}, {197, 1}} -> {{2, 2}, {11}, {197}} -> {2, 2, 11, 197}
)Iterate melalui daftar, mengalikan elemen. (
{2, 2, 11, 197} -> {2, 2 * 2, 2 * 2 * 11, 2 * 2 * 11 * 197} -> {2, 4, 44, 8668}
)Periksa apakah semua angka yang dihasilkan adalah palindrom, dan terapkan
And
operator. ({2, 4, 44, 8668} -> {True, True, True, True}
->True
)sumber
Brachylog , 14 byte
Cobalah online!
Penjelasan
Ini mengimplementasikan formula yang dijelaskan dalam deskripsi tantangan.
Komputasi semua produk sufiks faktorisasi prima dan memeriksa apakah semuanya palindrom lebih panjang 1 byte (
1|$p:@]f:{*.r}a
).sumber
Racket 238 byte
Tidak Disatukan:
Pengujian:
Keluaran:
sumber
palin
adalah nama panjang lima byte?J, 30 byte
Kesalahan untuk falsey, 1 untuk kebenaran.
Upaya awal, tidak kesalahan untuk falsey, 40 byte:
Penjelasan
Uji kasus
sumber
아희 (Aheui) , 309 byte (100 karakter * 3 byte + 9 baris baru)
Saya sangat senang bahwa saya benar-benar menyelesaikannya!
Saya baru dalam bahasa ini, jadi tip untuk meningkatkan jumlah byte diterima.
Coba di sini! (salin dan tempel kode)
Versi lebih bersih
sumber
Scala, 138 byte
Tidak Disatukan:
Penjelasan:
sumber
JavaScript (ES6), 78 byte
Secara rekursif membangun awalan factorisation prima dan memeriksanya untuk palindromisitas.
sumber
Java 7, 133 byte
Tidak disatukan
sumber
Sebenarnya , 29 byte
Mungkin ada beberapa bagian dari kode ini yang bisa golf, meskipun saya belum yakin di mana. Saran bermain golf diterima. Cobalah online!
Tidak melakukanolf
sumber