Empat urutan bilangan bulat
Dalam tantangan ini, Anda akan menguji empat properti berbeda dari bilangan bulat positif, yang diberikan oleh urutan berikut. Bilangan bulat positif N adalah
- sempurna ( Oei A000396 ), jika jumlah pembagi yang tepat dari N sama dengan N . Urutan dimulai dengan 6, 28, 496, 8128, 33550336, 8589869056, 137438691328, 2305843008139952128 ...
- refactorable ( Oei A033950 ), jika jumlah pembagi dari N adalah pembagi dari N . Urutan dimulai dengan 1, 2, 8, 9, 12, 18, 24, 36, 40, 56, 60, 72, 80, 84, 88, 96, 104, 108, 128 ...
- praktis ( OEIS A005153 ), jika setiap bilangan bulat 1 ≤ K ≤ N adalah jumlah dari beberapa pembagi N yang berbeda . Urutan dimulai dengan 1, 2, 4, 6, 8, 12, 16, 18, 20, 24, 28, 30, 32, 36, 40, 42, 48, 54, 56 ...
- sangat komposit ( Oei A002128 ), jika setiap nomor 1 ≤ K <N memiliki pembagi ketat kurang dari N . Urutan dimulai dengan 1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720, 840, 1260, 1680, 2520, 5040 ...
Empat program
Tugas Anda adalah menulis empat program (artinya program lengkap, definisi fungsi, atau fungsi anonim yang menjalankan I / O dengan salah satu metode standar ). Setiap program harus menyelesaikan masalah keanggotaan salah satu dari urutan ini. Dengan kata lain, setiap program akan mengambil bilangan bulat positif N ≥ 1 sebagai input, dan menghasilkan nilai kebenaran jika N ada dalam urutan, dan nilai palsu jika tidak. Anda dapat mengasumsikan bahwa N berada dalam batas tipe integer standar bahasa pemrograman Anda.
Program harus terkait dengan cara berikut. Ada empat string ABCD
sehingga
AC
adalah program yang mengenali angka sempurna.AD
adalah program yang mengenali angka yang dapat dihidupkan kembali.BC
adalah program yang mengenali angka praktis.BD
adalah program yang mengenali angka yang sangat komposit.
Mencetak gol
Skor Anda adalah total panjang (dalam byte) dari string ABCD
, atau dengan kata lain, jumlah byte total dari empat program dibagi dua. Skor terendah dalam setiap bahasa pemrograman adalah pemenangnya. Aturan standar kode-golf berlaku.
Misalnya, jika empat senar yang a{
, b{n
, +n}
dan =n}?
, kemudian empat program yang a{+n}
, a{=n}?
, b{n+n}
dan b{n=n}?
, dan skor adalah 2 + 3 + 3 + 4 = 12.
Jawaban:
JavaScript (ES6), 46 + 55 + 6 + 36 =
282274...158143 byteSEBUAH:
B:
C:
D:
Hasilnya adalah 4 fungsi anonim yang memberi truthy / nilai falsy untuk input masing-masing (
AC
,AD
, danBC
memberitrue
/false
,BD
memberikan1
/0
).Cuplikan tes
Tampilkan cuplikan kode
sumber
Jelly , 8 + 17 +
21 + 2 =2928 byteSEBUAH:
B:
C:
D:
Untuk angka praktis (BC),
0
itu palsu dan hasil lainnya adalah benar.AC dan BC adalah program penuh, karena tidak dapat digunakan kembali sebagai fungsi.
sumber
ÆDŒPS€ḟ@RṆµṖÆd<ÆdẠµ
berfungsi sebagai B untuk biaya dua byte (dan membuat BC mengembalikan 0 dan 1 hanya seperti yang lain).ŒP
denganŒṖ
. Sayang sekali! Apakah itu berfungsi jika Anda memperbaikinya? (Yaitu coba edit baru saya) Lagipula itu tidak mudah untuk diuji, itu sebabnya saya belum memasukkan tautan TIO.Haskell , 69 + 133 + 3 + 3 = skor 208
SEBUAH:
B:
C:
D:
Cobalah online!
Ya, ini cukup murah tapi saya tidak cukup pintar untuk solusi yang lebih keren. : P
sumber
subsequences
[x|x<-[1..n],mod n x<1]
lebih pendek darifilter((<1).mod n)[1..n]
.