Tantangan:
Anda diberi nomor basis 10. Untuk setiap basis dari 10 menghitung mundur ke basis 2:
- Ambil nomor input asli sebagai string 10 basis, dan hapus angka apa pun dari nomor yang tidak valid untuk basis.
- Menafsirkan string angka yang dihasilkan di pangkalan itu. Jika ini memberi 1 atau 0, hentikan seluruh proses.
- Keluarkan atau cetak faktor prima terbesarnya, sebagai angka desimal.
Outputnya dapat berupa array dari faktor prima terbesar.
Contoh kasus:
Memasukkan:
987654321
Keluaran:
379721
10593529
1091
179
1493
293
19
7
Bergantian:
[379721,10593529,1091,179,1493,293,19,7]
Ini mencetak faktor prima terbesar dari 987654321, 87654321 9 = 42374116 10 , 7654321 8 = 2054353 10 , dan seterusnya hingga mencapai 1 2 , di mana ia berhenti.
code-golf
math
primes
base-conversion
poi830
sumber
sumber
Jawaban:
Pyth, 25 byte
Coba di sini.
sumber
Pyth - 16 byte
Cobalah online di sini .
Kadang-kadang ada beberapa baris kosong pada input tanpa semua digit, biar tahu kalau itu masalah.sumber
MATL ,
1715 byteIni mengambil nomor sebagai string dengan tanda kutip, yang diizinkan secara default.
Cobalah online!
Penjelasan
sumber
Julia, 101 byte
Ini adalah fungsi rekursif yang menerima input sebagai string dan mengembalikan array.
Tidak Disatukan:
sumber
Mathematica, 83 byte
Fungsi anonim, mengembalikan daftar. Tidak rumit, jujur saja.
sumber
Ruby, 120 byte
Fungsi rekursif, mengambil input sebagai string.
sumber
-rprime
flag baris perintah alih-alihrequire
.-rprime
tidak bekerja untuk saya karena suatu alasan ...Pyke, 19 byte, tidak bersaing
(tambahkan fungsi splat_node)Coba di sini!
Mengambil input dalam tanda kutip, keluar dengan kesalahan.
Penjelasan (baris baru diganti dengan \ n):
sumber