Terinspirasi oleh pertanyaan ini tentang Matematika.
Biarkan faktorisasi prima dari angka, n , direpresentasikan sebagai P (n) = 2 a x 3 b x 5 c x ... .
(Menggunakan x sebagai simbol perkalian.)
Kemudian jumlah pembagi dari n dapat direpresentasikan sebagai D (n) = (a + 1) x (b + 1) x (c + 1) ... .
Dengan demikian, kita dapat dengan mudah mengatakan bahwa jumlah pembagi 2n adalah D (2n) = (a + 2) x (b + 1) x (c + 1) ... ,
jumlah pembagi 3n adalah D (3n) ) = (a + 1) x (b + 2) x (c + 1) ... ,
dan seterusnya.
Tantangan:
Tulis program atau fungsi yang menggunakan properti ini untuk menghitung n , diberi input pembagi tertentu.
Memasukkan:
Seperangkat bilangan bulat, sebut saja w, x, y, z , dengan semua definisi berikut:
- semua input lebih besar dari 1 -
w, x, y, z > 1
- x dan z berbeda -
x<>z
- x dan z adalah prime -
P(x)=x
,D(x)=2
danP(z)=z
,D(z)=2
- w adalah jumlah pembagi xn -
D(xn)=w
- y adalah jumlah pembagi dari zn -
D(zn)=y
Untuk masalah yang diberikan dalam pertanyaan terkait, contoh input bisa (28, 2, 30, 3)
. Ini diterjemahkan menjadi D(2n)=28
dan D(3n)=30
, dengan n=864
.
Keluaran:
Bilangan bulat tunggal, n , yang memenuhi definisi dan batasan input di atas. Jika beberapa angka sesuai dengan definisi, hasilkan yang terkecil. Jika tidak ada bilangan bulat seperti itu yang mungkin, output nilai falsey .
Contoh:
(w, x, y, z) => output
(28, 2, 30, 3) => 864
(4, 2, 4, 5) => 3
(12, 5, 12, 23) => 12
(14, 3, 20, 7) => 0 (or some other falsey value)
(45, 13, 60, 11) => 1872
(45, 29, 60, 53) => 4176
Aturan:
- Aturan standar kode golf dan pembatasan lubang berlaku.
- Aturan input / output standar berlaku.
- Nomor input dapat dalam urutan apa pun - harap tentukan dalam jawaban Anda urutan mana yang Anda gunakan.
- Nomor input dapat dalam format apa saja yang sesuai: dipisahkan oleh ruang, array, fungsi terpisah, atau argumen baris perintah, dll. - pilihan Anda.
- Demikian pula, jika output ke STDOUT, spasi putih di sekitar, trailing newline, dll. Semuanya opsional.
- Input parsing dan format output bukan fitur menarik dari tantangan ini.
- Untuk kepentingan kompleksitas waras dan bilangan bulat bilangan bulat, jumlah tantangan n akan memiliki batasan sedemikian rupa
1 < n < 100000
- yaitu, Anda tidak perlu khawatir tentang kemungkinan jawaban di luar kisaran ini.
Terkait
sumber
Jawaban:
Jelly ,
1716 byteIni adalah solusi brute force yang mencoba semua nilai yang mungkin hingga 100.000. Cobalah online!
Versi yang tidak bersaing
Versi terbaru Jelly memiliki perbaikan bug yang memungkinkan untuk menurunkan kode di atas menjadi 15 byte .
Cobalah online!
Bagaimana itu bekerja
sumber