Tantangan
Diberi bilangan bulat positif, kembalikan produk pembagi nya, termasuk dirinya sendiri.
Ini adalah urutan A007955 di OEIS .
Uji Kasus
1: 1 2: 2 3: 3 4: 8 5: 5 6:36 7: 7 8: 64 9:27 10: 100 12: 1728 14: 196 24: 331776 25: 125 28: 21952 30: 810000
Mencetak gol
Ini kode-golf , jadi jawaban tersingkat di setiap bahasa menang!
Jawaban:
05AB1E , 2 byte
Cobalah online!
Penjelasan
sumber
Japt , 3 byte
Cobalah online!
Penjelasan
sumber
â
dan×
ketika menulis jawaban iniJelly , 3 byte
Cobalah online!
sumber
MATL , 3 byte
Cobalah online!
sumber
Python 3 ,
4241 byteDisimpan 1 byte berkat Leaky Nun!
Cobalah online!
sumber
(1,k)[i%k<1]
setara dengank**(i%k<1)
Haskell ,
3534 byte-1 Berkat ovs
Cobalah online!
sumber
Pyth , 6 byte
Suite uji .
sumber
Alice , 12 byte
Cobalah online!
Penjelasan
Ini hanya kerangka kerja biasa untuk I / O desimal:
Maka programnya adalah:
sumber
Neim , 2 byte
Cobalah online!
sumber
R , 28 byte
Cobalah online!
sumber
x86-64 Kode Mesin, 26 byte
Kode di atas mendefinisikan fungsi yang mengambil parameter tunggal (nilai input, bilangan bulat positif) di
EDI
(mengikuti konvensi pemanggilan Sistem V AMD64 yang digunakan pada Gnu / Unix), dan mengembalikan hasil tunggal (produk pembagi) diEAX
.Secara internal, ini menghitung produk pembagi menggunakan algoritma iteratif (sangat tidak efisien), mirip dengan pengiriman C pizzapants184 . Pada dasarnya, ia menggunakan penghitung untuk mengulang semua nilai antara 1 dan nilai input, memeriksa untuk melihat apakah nilai penghitung saat ini adalah pembagi input. Jika demikian, itu akan berlipat ganda menjadi total produk yang berjalan.
Mnemonik bahasa assembly yang tidak disatukan:
Fakta bahwa
IDIV
instruksi menggunakan operan kode keras untuk dividen kram gaya saya sedikit, tapi saya pikir ini cukup baik untuk bahasa yang tidak memiliki built-in tetapi aritmatika dasar dan cabang kondisional!sumber
TI-Basic (TI-84 Plus CE), 24 byte
Program lengkap: meminta input dari pengguna; mengembalikan output dalam
Ans
, variabel khusus yang (pada dasarnya) menyimpan nilai dari nilai terbaru yang dihitung.Penjelasan:
sumber
C (gcc),
5248 byte-4 byte berkat Cody Grey
Fungsi yang mengambil bilangan bulat dan mengembalikan produk pembagi itu.
Cobalah online!
Tidak Disatukan:
sumber
p*=
ekspresi, dan (3) meletakkan pernyataan di tubuhfor
loop untuk menjatuhkan koma. Saya juga suka menggunakan vars global, daripada menambahkan parameter tambahan. Ini menghindari perilaku tidak terdefinisi, tanpa biaya byte. Versi terakhir:p,a;f(x){for(p=1,a=x;a;--a)p*=x%a?1:a;return p;}
return p;
denganp=p;
dan menyimpan lima byte.p,a;f(x)
denganf(x,p,a)
.return p;
dan menyimpan bukan lima, tetapi sembilan byte. ( TIO )JavaScript (ES7), 32 byte
Menyimpan beberapa byte dengan meminjam tip Leaky pada solusi Python musicman .
Cobalah
Alternatif (ES6), 32 byte
sumber
(n%i?1:i)
? (Tapi ini tidak akan menghemat byte.)TI-Basic,
241413 byteDisimpan 1 byte berkat lirtosiast
sumber
int(
?QBIC , 22 byte
Penjelasan
sumber
Pari / GP , 18 byte
Cobalah online!
sumber
PHP , 45 byte
Cobalah online!
sumber
Mathematica, 17 byte
bagi mereka yang tidak dapat melihat jawaban yang dihapus (jawaban DavidC), ini adalah kode dalam Mathematica dengan bantuan @MartinEnder
sumber
Bahasa Pemrograman Shakespeare , 353 byte
Versi tidak disatukan:
Saya menggunakan kompiler SPL ini untuk menjalankan program.
Jalankan dengan:
sumber
Python 3, 45 byte
lambda _:_**(sum(_%-~i<1for i in range(_))/2)
Biarkan
x
menjadi nomor. Keduanyay
danz
akan menjadi pembagix
jikay * z = x
. Oleh karena itu,y = x / z
. Katakanlah nomord
memiliki 6 divisiors, karena pengamatan ini pembagi akana
,b
,c
,d / a
,d / b
,d / b
. Jika kita mengalikan semua angka ini (titik teka-teki), kita memperolehnyad * d * d = d ^ 3
. Secara umum, untuke
dengan sejumlahf
pembagi, produk pembagi tersebut akan menjadie ^ (f / 2)
, yang adalah apa yang dilakukan lambda.Cobalah online!
sumber
MY , 4 byte
Hex:
Penjelasan:
sumber
Java (OpenJDK 8) ,
5251 byteCobalah online!
Terima kasih LeakyNun karena telah menghemat 1 byte!
sumber
n->{int r=n,d=0;for(;++d<n;)r*=n%d<1?d:1;return r;}
RProgN 2 , 2 byte
Bahasa lain dengan in bawaan untuk
divisors
danproduct
.Cobalah online!
sumber
Perl 6 , 22 byte
Cobalah online!
sumber
J, 19 byte
Penjelasan akan datang nanti ...
Cobalah online!
sumber
Oktaf , 27 byte
Ini mendefinisikan fungsi anonim.
Cobalah online!
sumber
Python 2 ,
5250 bytem*=n%i>0 or i
Cobalah online!
sumber
Fortran 95, 88 byte
Cobalah online!
Tidak Disatukan:
sumber
Aksioma, 23 byte
Ini adalah terjemahan dari Aksioma solusi alephalpha
sumber