Sexy Primes adalah pasangan angka (n, m)
seperti n
dan m
keduanya prima, dan m = n + 6
.
Anda perlu membuat fungsi yang akan mengambil bilangan bulat, memeriksa bilangan prima seksi dari 0 hingga bilangan bulat itu, dan mengembalikan array array.
Misalnya, listSexy(30)
harus kembali [[5,11], [7,13], [11,17], [13,19], [17,23], [23,29]]
atau setara.
Ini adalah kode-golf sehingga program dengan bytecount terpendek menang!
Jawaban:
MATLAB 32
n adalah nomor Anda
sumber
isprime
. Bukan berarti op yang dimaksud itu.J,
343331323937 karakterKehilangan satu karakter yang menjaga bilangan prima di bawah batas ... dan 7 lainnya menyatakan fungsi.
Pemakaian:
Edit
Sepertinya banyak jawaban baru yang tidak membuat fungsi, mengambil input atau membatasi kedua angka pada pasangan di bawah ini
n
- jika saya mengabaikan batasan itu juga saya bisa turun ke 28 karakter :sumber
Mathematica , 35
sumber
GolfScript, 32 karakter
Karena format output tidak ditentukan, kode di atas akan mencetak perdana yang lebih rendah dari setiap pasangan. Jadi angka
x
dimasukkan jikax
danx+6
keduanya prima dan keduanya di bawahn
. Masukan diberikan sebagai nomor tunggal pada STDIN.sumber
K3 / Kona , 45
.
Dan solusi yang sama dalam inkarnasi K saat ini yang identik dengan solusi K3 kecuali kenyataan bahwa ia tidak memiliki operator mod inbuilt, yang menambahkan sekitar 14 karakter untuk 59
sumber
Python (
93 90 9995)Yay untuk
isprime
fungsi cepat dan kotor !sumber
1
bukannyaTrue
akan menyelamatkan Anda 3 karakter ...[]
dalamall()
tidak diperlukan (setidaknya dalam Python 2.7).Oktaf 39
Dimodifikasi jawaban MATLAB saya untuk mematuhi aturan baru (menjengkelkan).
n
adalah nilai Anda.Dapat diuji di sini
sumber
C,
1029995 karakterMengembalikan array dalam C adalah sesuatu yang Anda coba hindari. Jadi fungsi
s
mendapatkan batasn
dan penunjuk ke array bilangan bulat, dan mengisinya dengan data. Setiap pasangan bilangan prima seksi ditempatkan di dua posisi dalam array. Jadio[0]=5
,o[1]=11
,o[2]=7
,o[3]=13
. Fungsi menganggap array cukup besar.sumber
R, 83 karakter
Pemakaian:
sumber
Ruby
7574Versi baru menggunakan metode uji utama Artem Ice :
Tes online: http://ideone.com/yaOdn
sumber
Ruby,
99 88 86 84 8278Output sampel:
[[5, 11], [7, 13], [11, 17], [13, 19], [17, 23], [23, 29], [31, 37], [37, 43], [41, 47], [47, 53], [53, 59], [61, 67], [67, 73], [73, 79], [83, 89]]
sumber
Python,
137 132 126 122116Saya menyadari ini agak gagal, tapi ini jawaban pertama saya, jadi mengapa tidak.
Menggunakan daftar pemahaman, serta fakta itu
[] = False
f(x)
sebenarnya mengembalikan semua faktorx
, dan Anda kemudian dapat menemukan keunggulan dari itu.sumber
f(x)
menjadif=lambda x:not[y for y in range(2,x)if x%y==0]
untuk menyimpan beberapa karakter. Anda juga dapat mengurangi nilaiif
s pada akhir pemahaman daftar Andaf(x)&f(y)&(x-6==y)
.a=lambda x,y,z:(value here)
sama dengandef a(x,y,z):return (value here)
.JavaScript (1 tweet = 140 Karakter)
Ini dia:
function t(n,i){for(i=2;i<n;i++)if(!(n%i))return!1;return!0}function s(n,p){for(p=[],i=2;i<n-6;i++)if(t(i)&&t(i+6))p.push([i,i+6]);return p}
Coba
s(30)
.sumber
J, 25 karakter
i.n
menciptakan kisaran [0, n)(,+&6)"0
mengambil setiap bilangan bulatn
dalam daftar dan membuat pasangann, n+6
(#~ condition)
pada dasarnya adalah afilter
, dan kondisi dalam kasus ini*/"1@p:~&1
, hanya memeriksa apakah pasangan hanya terdiri dari bilangan prima.sumber
C # (279 karakter)
Pada dasarnya, ini solusi Saumil dengan beberapa penyesuaian. Saya tidak memiliki
cukupreputasi untuk berkomentar, jadi ...Keluaran:
sumber
Perl: 73 char
pemakaian:
keluaran:
sumber
C # 295
Tes online: http://ideone.com/4PwTW (dalam tes ini saya telah diganti
int.Parse(a[0])
dengan nilai int yang sebenarnya, karena saya tidak dapat memberikan argumen baris perintah untuk program yang berjalan di ideone.com)sumber
Mathematica -
6948 karakterDengan asumsi m telah diberi nilai
sumber
Scala (82)
Output sampel:
Vector(List(5, 11), List(7, 13), List(11, 17), List(13, 19), List(17, 23), List(23, 29), List(31, 37), List(37, 43), List(41, 47), List(47, 53), List(53, 59), List(61, 67), List(67, 73), List(73, 79), List(83, 89))
sumber
Faktor 140
Bahasa ini menyenangkan dan menarik. Script pertama saya.
Pemakaian:
sumber
PARI / GP (62 karakter)
Contoh:
sumber
C # (
321303290 karakter)using System;namespace X{public class P{ static int l=100;static void Main(){F(0);}static bool I(int n){bool b=true;if(n==1){b=false;}for(int i=2;i<n;++i){if(n%i==0){b=false;break;}}return b;}static void F(int p){if((p+6)<=l){int m=p+6;if(I(m)&&I(p)){Console.WriteLine(m+","+p);}F(p+1);}}}}
Output:
11,5
13,7
17,11
19,13
23,17
29,23
37,31
43,37
47,41
53,47
59,53
67,61
73,67
79,73
89,83 89,83
sumber
class P
bukanclass Program
).Haskell (65 karakter)
Hasil:
Tentang jawaban MATLAB di sini:
(Saya menghabiskan semua perwakilan saya untuk hadiah jadi belum bisa berkomentar dulu) . Google mengatakan: "fungsi isprime Matlab ... didasarkan pada Miller-Rabin yang probabilistik". Jadi sepertinya entri MATLAB harus didiskualifikasi.
sumber
R
8581 karakterContoh dijalankan:
sumber
PHP, 106 byte
program mencetak pasangan sebagai
n,n+6
dibatasi oleh linebreak. Jalankan dengan-r
.Saya memodifikasi fungsi is_prime saya (& menyelamatkan satu byte) sehingga mengembalikan
0
untuk bilangan prima ke golf di Elvis.sumber
Jelly , 13 byte (tidak bersaing)
Cobalah online!
Penjelasan yang ditingkatkan:
sumber
Obj-C 64 karakter
isPrime diimplementasikan secara terpisah
sumber
isPrime
yang bukan bagian dari bahasa atau pustaka standar, Anda harus memasukkan jumlah karakter untuk fungsi itu sebagai bagian dari skor Anda.