Tulis kode terpendek untuk menemukan jumlah bilangan prima di antara a
dan b
(termasuk).
Memasukkan
a
danb
dapat diambil dari command line atau stdin (spasi terpisah)- Asumsikan
1 <= a <= b <=
10 8
Keluaran Cukup cetak jumlah dengan karakter baris baru.
Poin Bonus
- Jika program menerima beberapa rentang (cetak satu jumlah pada setiap baris), Anda mendapatkan poin tambahan. :)
Jawaban:
J,
413219 karakter:Memperbarui
(ayakan sederhana)
misalnya
Sebelumnya
misalnya:
sumber
Mathematica 7 (31 karakter dalam teks biasa)
Jika solusi PARI / GP diizinkan, maka:
sumber
Range[a,b]~Select~PrimeQ//Tr
.C (117 termasuk NL)
sumber
C # (294 karakter):
sumber
int
slong
dan menyimpan beberapa karakter:long a=...,b=...,t=0,i=a;for(;i<=b;i++)
. Ini membuatnya menjadi 288 karakter. Anda juga dapat membiarkanp
kembali lama dan hanya mengembalikan salah satu0
ataun
dan memperpendek loop ket+=p(i)
. 277 karakter, kalau begitu.PARI / GP (44 karakter)
sumber
BASH Shell
47 Karakter
Sunting: Baru menyadari jumlah kelebihan dan dipaksa sebagai ganda.
5250 KarakterIni solusi yang sedikit lebih lama, tetapi juga menangani luapan
sumber
$
).tr
menambahkan tanda '+' di akhir, memperbaikinya akan membutuhkan lebih banyak karakter.awk NF==2{print\$2}
menyimpan byte pada solusi yang lebih lama (kami tidak akan sengaja mengalami ekspansi brace karena tidak ada koma atau..
s).C #, 183 karakter
Ini akan menjadi jauh lebih pendek jika tidak harus memeriksa 1, atau jika ada cara yang lebih baik untuk ... Dalam format yang lebih mudah dibaca:
sumber
s -= i;
karena itu hanya gula sintaksiss = s - i;
yang mencoba mengaksess
sebelum menyetelnya)Haskell (80)
s 1 100 == 1060
sumber
Ruby 1.9, 63 karakter
Gunakan seperti ini
Menggunakan
Prime
kelas terasa seperti curang, tetapi karena solusi Mathematica menggunakan fungsi-fungsi utama bawaan ...sumber
Perl, 62 karakter
Yang ini menggunakan bilangan prima regex.
sumber
Tugas Normal (Python 3): 95 karakter
Tugas Bonus (Python 3): 119 karakter
sumber
Pari / GP (24 karakter)
Seperti beberapa solusi lain, ini tidak sepenuhnya memenuhi persyaratan, karena
a
danb
tidak dibaca dari stdin atau baris perintah. Saya pikir itu adalah alternatif yang bagus untuk solusi Pari / GP dan Mathematica lainnya.sumber
Gangguan Umum: (107 karakter)
hanya berfungsi untuk titik awal> = 1
sumber
APL (25 karakter)
Ini adalah modifikasi dari idiom terkenal (lihat halaman ini untuk penjelasan) untuk menghasilkan daftar bilangan prima di APL.
Contoh:
sumber
Faktor -> 98
Keluaran:
sumber
R, 57 karakter
sumber
n=2
perlu menyebutkanscan()
? Jika input standar, apakah ada masalah dengan menghilangkan argumen dan menganggap <enter> ekstra diperlukan?Japt , 7 byte
Coba di sini.
sumber
fj<space>
bisa berguna.Perl, 103 karakter
Ini akan menerima beberapa garis yang dipisahkan spasi dan memberikan jawaban untuk masing-masing: D
sumber
Di Q (95):
Penggunaan sampel:
sumber
C # 302
sumber
Mathematica , 27
Telah ditentukan sebelumnya
a
danb
:Sebagai fungsi (juga 27):
sumber
R (85 karakter)
x=scan(nmax=2);sum(sapply(x[1]:x[2],function(n)if(n==2||all(n %% 2:(n-1)))n else 0))
Sangat tidak efisien! Saya cukup yakin ini membutuhkan waktu O (n ^ 2). Mungkin memberi peringatan tentang memaksa ganda untuk logis.
Deobfuscated:
sumber
Python 3.1 (153 karakter):
sumber
from sys import*
2.r=True
->r=1
(dan masing0
- masing untukFalse
) 3.if i%j==0and i!=j:r=0
4.if r:p+=[i]
5.print(sum(p))
(menggantikan 4 baris terakhir)input()
untuk menjadi lebih pendek. Juga, bisakah Anda menggunakanif i%j<1and
sebagai gantinya?GolfScript,
2724 byteIni didasarkan pada algoritma bilangan prima @ w0lf .
sumber
05AB1E , 5 byte
Cobalah online!
sumber
Python: 110 karakter
sumber
Python, 133
Sedikit ilmu sihir:
sumber
y+=1
dan sebagai gantinya menggunakanrange(y+1)
dan([0]*-~y)[::i]
untuk menyimpan byte (menghapus baris baru). Dan menggunakan Python 3 akan memungkinkan Anda untuk menggunakaninput()
, selama Anda menempatkan tanda kurung setelahnyaprint
, karena itu menghapus 4 byte, tetapi menambahkan 1. Worth it.133 chars, Lua (tidak ada fungsi is_prime built-in)
Berikut ini adalah contoh di mana saya menambahkan baris "cetak (i)" untuk menampilkan semua bilangan prima yang ditemukan dan jumlahnya di bagian akhir: http://codepad.org/afUvYHnm .
sumber
PowerShell - 94
sumber
F # (141)
Sepertiga dari kode adalah untuk mem-parsing input.
sumber