Angka superabundan adalah bilangan bulat n yang menetapkan batas atas baru untuk rasio dengan fungsi jumlah pembagi σ. Dengan kata lain, n adalah superabundant jika dan hanya jika, untuk semua bilangan bulat positif x yang kurang dari n :
Untuk beberapa nilai:
n σ(n) σ(n)/n superabundant
1 1 1.0000 yes
2 3 1.5000 yes
3 4 1.3333 no
4 7 1.7500 yes
5 6 1.2000 no
6 12 2.0000 yes
7 8 1.1429 no
8 15 1.8750 no
9 13 1.4444 no
Daftar yang lebih panjang (untuk kasus uji) dapat ditemukan di OEIS A004394 .
Satu test case negatif yang sangat direkomendasikan (jika juru bahasa Anda dapat mengatasinya) adalah 360360, karena itu terkait dengan angka superundundan terakhir.
Tantangan
Program Anda harus mengambil dalam bilangan bulat positif tunggal, dan menampilkan nilai true atau falsey yang mewakili apakah bilangan bulat itu superundung.
Karena ini adalah kode-golf , jawaban terpendek dalam byte akan menang.
Æs÷$ÐṀ=
selama 7 byte. Saya tidak menyadariÐṀ
rangified, itu berguna untuk diketahui.360360
. Sebenarnya, ini adalah versi awal saya360360
?360360
adalah angka pertama yang gagal untuk (saya pikir), karena ini adalah angka pertama yang mengikat hasil yang terjadi sebelumnya. (dan hasilnya adalah[0, 1]
)Haskell , 73 byte
-1 byte terima kasih kepada Tn. Xcoder. -7 byte terima kasih kepada Laikoni.
Cobalah online!
Sistem tipe Haskell tidak terlalu golf ...
sumber
Haskell ,
646361 byte-1 byte terima kasih kepada Tn . Xcoder .
-2 byte terima kasih kepada Lynn .
Cobalah online!
sumber
Oktaf , 41 byte
Cobalah online!
Penjelasan
sumber
J , 35 byte
Terima kasih kepada Mr.Xcoder untuk menemukan masalah dan untuk memperbaiki masalah ini!
Cobalah online!
sumber
360360
(lihat tantangan untuk detail lebih lanjut: Satu test case negatif yang sangat direkomendasikan adalah 360360, karena itu terkait dengan angka superundundan terakhir. ).#.~
banyak (jujur seluruh fungsi jumlah pembagi sangat bagus). Apa yang salah, adalah, meskipun pemikiran melakukan{:=>./
itu cerdas, itu tidak memuaskan bagian "lebih besar dari" dari pertanyaan itu.(1#.{:(]*0=|~)])\
. Ada yang salah dengan itu, mungkin Anda memiliki beberapa pemikiran?(1#.]*0=|~)1+i.
Ini adalah pengait dan tidak pas dengan mudah ke tempatnya :)Julia 0,6 , 52 byte
Cobalah online!
Solusi ini menggunakan bilangan rasional untuk memastikan kebenaran dalam hal kesetaraan. (Pengujian 360360 membutuhkan waktu hampir 10 menit.)
Menggunakan floating point, 2 byte dapat disimpan dengan pembagian kiri:
sumber
Pyth , 14 byte
( FryAmTheEggman menyimpan 1 byte)
Coba di sini! atau lihat lebih banyak test case.
Hanya pengajuan Pyth wajib saya yang kemungkinan besar golf.
Bagaimana?
sumber
05AB1E , 10 byte
Cobalah online! atau sebagai Test suite
Penjelasan
sumber
360360
(lihat tantangan untuk lebih jelasnya: Satu test case negatif yang sangat direkomendasikan adalah 360360, karena ini terkait dengan angka superabundan terakhir. ).Python 3 , 77 byte
-1 byte terima kasih kepada Rod. -3 byte terima kasih kepada Dennis.
Cobalah online!
sumber
R menggunakan
numbers
, 59 bytesumber
Mathematica,
5350 byteFungsi murni. Mengambil bilangan bulat sebagai input dan mengembalikan
True
atauFalse
sebagai output.sumber
Tr@Divisors@#
bekerja?Japt v2.0a0,
1216 byteOtak yang kurang tidur sepertinya tidak bisa memperbaiki ini lebih jauh!
Pengembalian
1
untuk kebenaran atau0
untuk kepalsuan.Cobalah
Mengorbankan 4 byte untuk ditangani
360360
.Penjelasan
U
.Æ Ã
membuat array bilangan bulat dari0
keU-1
dan melewati masing-masing melalui fungsi berikut sebagaiX
.â
mendapat pembagi dariU
.÷U
membagi masing-masing denganU
.x
jumlah hasilnya.Xâ
mendapat pembagi dariX
.÷X
membagi masing-masing denganX
.x
jumlah hasilnya.>
memeriksa apakah hasil pertama lebih besar dari yang kedua.×
mengurangi array boolean yang dihasilkan oleh perkalian.sumber
360360
atau bilangan bulat lainnya: Satu test case negatif yang sangat direkomendasikan (jika penerjemah Anda dapat mengatasinya) adalah 360360, karena itu terkait dengan nomorAPL + WIN, 37 byte
Meminta input layar.
sumber
C (gcc), 99 byte
Cobalah online!
C, 108 byte
Cobalah online!
sumber
s
perlu mengembalikan pelampung?s(n)/n
kes(i)/i
.Cepat ,
120118 byteButuh beberapa waktu (sekitar 6 detik pada TIO) untuk dikompilasi karena deklarasi tipe implisit di Swift.
Cobalah online!
sumber
Jelly , 12 byte
Cobalah online! atau Temukan semua nomor yang sangat banyak di bawah 1000.
karena saya benci floating point.
sumber
Funky , 79 byte
Dijelaskan
Ini pertama mendefinisikan fungsi
d
yang merupakanσ
fungsi, dan ini adalah versi golfKita dapat mengatur i ke 0, karena
i*n%0
akan selalu sama0*...
, dengan demikian0
.Bagian selanjutnya dari ini mendefinisikan fungsi
f
, yang merupakan fungsi Superabandunce, dan itu hanya bentuk golfDan ini hanya memeriksa, seperti yang disarankan oleh tantangan, bahwa semua bilangan bulat dari 1 hingga n-1 memiliki
d(n)/n
kurang dari input.Cobalah online!
sumber
APL (Dyalog) , 33 byte
Cobalah online!
sumber
Sekam , 9 byte
Cobalah online! Terlalu lambat untuk test case 360360.
Penjelasan
sumber
£ü¤<§ṁ/ḊN
. Menciptakan seluruh daftar nomor yang sangat banyakPerl 5, 84 byte
membutuhkan
-E
(gratis)implementasi langsung dari spesifikasi, golf
sumber
APL (NARS), 61 karakter, 122 byte
11π adalah jumlah fungsi faktor
sumber