Napisz program, który pobiera dane wejściowe (które mogą, ale nie muszą być liczbami pierwszymi), i podaje listę liczb pierwszych następujących po niej i poprzedzających ją.
Przykładowe dane wejściowe:
1259
Przykładowe dane wyjściowe:
1249 1277
Najkrótszy program wygrywa. Musi zostać wykonany w ciągu 10 sekund na nowoczesnym komputerze stacjonarnym. Wejścia będą ograniczone do maksymalnie 10 000.
n
, tworzącn
długie ciągi znaków i testując je pod względem wyrażenia regularnego absolutnie okropne?Odpowiedzi:
Perl 5.10 (perl-E), 65 znaków
Połowa kredytu (przynajmniej) powinna trafić do @J B.
źródło
qr
, -4 za niepotrzebne ograniczników później).qr
. LMGTFY: 81 znaków$m=$n=<>;$p='^1$|(^11+)\1+$';0while(1x--$m)=~$p;0while(1x++$n)=~$p;print"$m $n$/"
perl -E'$m=<>;for(-1,1){$n=$m;0while(1x($n+=$_))=~q<^1$|(^11+)\1+$>;say$n}'
Mathematica , 19
źródło
Mathematica: 28 znaków
Stosowanie
źródło
Python - 93
Na podstawie odpowiedzi fR0DDY . Zasadniczo połączyłem linie 4 i 5 i skróciłem linię 2, stosując inną metodę.
źródło
Python
116111109 Znakówźródło
f=lambda n:not(all(pow(b,n-1,n)<2for b in(3,5,7,13)))
n=input()-1
im=n+2
zapisuje 3 znaki ... myślę.not(all(...))
any(...)
108
.J, 22 znaki
źródło
Haskell: 99
Przykład
źródło
Python, 116
139znaków (podwójne wcięcie to tab-char)Wykorzystuje dobre sito z Eratostenesa
Edycja i (dzięki TON @JPvdMerwe). Powinien działać teraz z liczbami pierwszymi.
Oryginalny
źródło
a=range(9999)
za=range(n)
. Również w linii 2 nie musisz przechodzića
do lambda, możesz po prostu z niej skorzystać. To powinno się dużo golić.Scala 119:
bez golfa:
21,2 s, aby uruchomić wszystkie 9998 ints od 3 do 10.000
źródło
Galaretka , 5 bajtów (niekonkuruje?)
Wypróbuj online!
źródło
Swift
190187185110Swift jest bardzo zły w golfowym kodzie, ale i tak spróbowałem: D
Robi się coraz krótszy ... (Dzięki @HermanLauenstein za usunięcie 75 bajtów)
źródło
var a=Int(readLine()!)!;for b in[-1,1]{var n=a,c=0;while c<1{n+=b;c=1;for i in 2..<n{if n%i<1{c=0}}};print(n)}
(jeszcze nie przetestowałem tego poprawnie)Python (123)
UWAGA:
Primes
Moduł został napisany przeze mnie, ale istniał przed zadaniem tego pytania. NIE zostało napisane do tego. Niemniej jednak uznano to za niesprawiedliwe, więc tutaj jest zaktualizowana wersja.Python (215)
źródło
123
Primes
; wbrew duchowi golfa kodowego.Stax , 7 bajtów
Uruchom i debuguj
Odpowiednik ASCII:
Wbudowane
źródło
JavaScript (Node.js) , 79 bajtów
Wypróbuj online!
źródło
C (gcc) , 98 bajtów
Wypróbuj online!
Pełna wersja programu, C (gcc) , 116 bajtów
Wypróbuj online!
Obie wersje zakładają, że nigdy nie testujemy 1 pod kątem pierwotności, co dzieje się tylko wtedy, gdy dane wejściowe wynoszą 2 lub mniej, w takim przypadku dane wyjściowe i tak byłyby niezdefiniowane.
źródło