Napisz program lub funkcję w dowolnym języku, który mówi, czy wejście jest liczbą pierwszą.
- Dane wejściowe to ciąg reprezentujący liczbę naturalną w bazie-10.
- Wyjściem jest jeden z dwóch ciągów „Prime” lub „Not !!” który poprawnie identyfikuje dane wejściowe.
- Operatory arytmetyczne, operatory bitowe, zmienne i stałe numeryczne, ogólnie „matematyka” itp. Są niedozwolone w twoim programie. Powinieneś użyć operacji na łańcuchach, aby wykonać wszystkie niezbędne „obliczenia”.
- Możesz porównać długości łańcuchów (które są liczbami) - ale -10 do swojego wyniku, jeśli tego nie zrobisz.
- Twój program powinien działać na dowolnym wejściu długościowym (biorąc pod uwagę wystarczającą ilość pamięci i czasu).
- Wygrywa najniższa liczba bajtów (UTF-8).
code-challenge
string
primes
Wally
źródło
źródło
Odpowiedzi:
Rubin, 64-10 = 54
Powoduje to iterację od ciągu „1” (plus nowy wiersz) do ciągu wejściowego, przy użyciu wbudowanej w Ruby metody iteracji ciągu, która wygląda okropnie podobnie jak dodanie 1, ale która nie tworzy technicznie zmiennej numerycznej wysokiego poziomu w dowolnym momencie . Wykorzystuje fakt, że będą istnieć n iteracje dla wejścia n, aby utworzyć ciąg o długości n, a następnie używa wyrażenia regularnego, aby ustalić, czy ten ciąg może być zgrupowany w identyczne podłańcuchy.
źródło
Rubin: 52-10 = 42
Używając odmiany tego słynnego wyrażenia regularnego dopasowującego liczby pierwsze.
Żeby było jasne:
?_*gets.to_i
to operacja łańcuchowa, która dołącza się"_"
do siebie n razy, gdzie n jest liczbą wejściową. Widzę, że długości łańcuchów nie są porównywane, więc powinno spełniać kryterium premii 10 znaków.źródło
Arithmetic operators, bit-wise operators, numeric variables and constants
i nie można tak naprawdę zaklasyfikować wywoływania metody jako"math-stuff" in general
..?Perl 52-10 = 42
Realizacja
Próbny
źródło
pop
zamiast$ARGV[0]
, zapisz 4 znaki, usuń numeryczny indeks tablicowyECMAScript 6, 159–10 = 149
Brzmi jak zadanie dla wyrażenia regularnego. I / O z
prompt
/alert
jak zwykle.Pętla while zmniejsza liczbę dziesiętną o jeden w każdej iteracji wyłącznie za pomocą wyrażenia regularnego. Ostateczne wyrażenie regularne dopasowuje ciąg składający się ze złożonej liczby x, najpierw dopasowując jeden czynnik, a następnie drugi, powtarzając pierwszy czynnik jeden dla reszty łańcucha.
źródło
JavaScript 266
Tworzy funkcję o nazwie N, która wydrukuje pożądany wynik. Wersja nieuprawniona wygląda następująco. Zrobiłem ręczną minify, aby wyczyścić niektóre zmienne, a następnie przejrzałem to przez uglify, a następnie ręcznie zminimalizowałem to ponownie.
Przetestowałem to za pomocą tego fragmentu:
źródło
Bash 66-10 = 56
Realizacja
Próbny
źródło
Python 3, 109-10 = 89
Nie porównuje długości ciągów, ale włączanie ciągów. Krzyż wysłany z duplikatu Ustal, czy liczba jest liczbą pierwszą bez użycia arytmetyki
źródło