Dzisiaj, kiedy to piszę, jest 31 marca. W USA tak jest 3/31
. Grałem z 331
pewną liczbą, aby wymyślić wyzwanie, i odkryłem, że jego pozostałości (modulo małe liczby) są palindromiczne. 331%2=1, 331%3=1, 331%4=3, 331%5=1, 331%6=1
( 11311
).
Waszym wyzwaniem jest podanie liczb całkowitych n > 2
pierwszych n
liczb dodatnich, które mają resztę palindromową po przyjęciu modulo [2,n]
.
Na przykład dane wejściowe 7
powinny wynosić 1, 42, 43, 140, 182, 420, 421
. Oto tabela wyjaśniająca, dlaczego tak jest:
mod
num | 2 3 4 5 6 7
-----------------
1 | 1 1 1 1 1 1
42 | 0 0 2 2 0 0
43 | 1 1 3 3 1 1
140 | 0 2 0 0 2 0
182 | 0 2 2 2 2 0
420 | 0 0 0 0 0 0
421 | 1 1 1 1 1 1
Wkład
Pojedyncza dodatnia n
ze n > 2
w dowolnym, wygodnym formacie .
Wydajność
Powstała tablica / lista pierwszych n
reszt palindromowych, jak opisano powyżej. Ponownie, w dowolnym odpowiednim formacie.
Zasady
- Załóżmy
n > 10
, że lista pozostałości jest spłaszczona przed sprawdzeniem, czy jest to palindrom. Oznacza to, że[1, 10, 11]
jest palindromiczny, ale[1, 10, 1]
nie jest. - Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je wydrukować.
- Jeśli to możliwe, dołącz link do internetowego środowiska testowego, aby inni mogli wypróbować Twój kod!
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
Przykłady
[input]
[output]
3
[1, 6, 7]
4
[1, 4, 5, 8]
5
[1, 50, 60, 61, 110]
6
[1, 30, 31, 60, 61, 90]
7
[1, 42, 43, 140, 182, 420, 421]
8
[1, 168, 169, 336, 337, 504, 505, 672]
9
[1, 2520, 2521, 5040, 5041, 7560, 7561, 10080, 10081]
10
[1, 280, 281, 560, 1611, 1890, 1891, 2170, 2171, 2241]
11
[1, 22682, 27720, 27721, 50402, 55440, 55441, 78122, 83160, 83161, 105842]
code-golf
math
number-theory
palindrome
AdmBorkBork
źródło
źródło
n
elementy.[1, 10, 11]
jest palindromiczne, ale[1, 10, 1]
nie jest” wydaje się tak matematycznie niewłaściwe.Odpowiedzi:
Haskell, 57 bajtów
Przykład użycia:
f 4
->[1,4,5,8]
. Wypróbuj online!Pierwszy
=<<
jest w kontekście funkcji i tłumaczy się na lambda,\x -> reverse x == x
a drugi=<<
w kontekście listy i jest równoważnyconcatMap
, tj. Map-and-spłaszczony-jeden-list-poziom.źródło
05AB1E , 12 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Mathematica, 79 bajtów
źródło
JavaScript (ES6), 104 bajty
Próbny
Uwaga : z powodu licznych wywołań rekurencyjnych nastąpi awaria dla n> 8 w Firefox lub n> 10 w Chrome.
Pokaż fragment kodu
źródło
Python 2,
9897 bajtówWypróbuj online!
źródło
12
powodu dziwnej reguły, która[1, 10, 11]
jest uważana za palindromMATL , 19 bajtów
Dzięki @AdmBorkBork za wskazanie błędu we wcześniejszej wersji kodu, teraz poprawionej
Wypróbuj online!
Wyjaśnienie
źródło
Scala,
908682 bajtówWyjaśnienie
Przypadki testowe
Wyniki
Edycje
# 1 (90 => 86)
# 2 (86 => 82)
(2 to n).map(%i)
=>(2 to n)map(%i)
źródło
def f(n:Int)=
się(n:Int)=>
, ponieważ również definiuje funkcję (ale bez nazwy). Oszczędza 4 bajty!Galaretka , 12 bajtów
W jaki sposób?
Wypróbuj online!
źródło
CJam , 28 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
PHP, 93 bajty
Wersja online 2 Pętle Wyjście jako ciąg
Rozszerzony
PHP 130 bajtów
Pętle w wersji online 2
Rozszerzony
PHP, 139 bajtów z 1 pętlą
Pętla w wersji online 1
Biegnij z
Rozszerzony
źródło
QBIC , 48 bajtów
Bije Mathematica! Przykładowy przebieg:
Wyjaśnienie:
źródło
Japt , 26 bajtów
Wypróbuj online!Zajmuje to w sumie kilka sekund wejściach, więc proszę o cierpliwość.
Byłoby to znacznie krótsze (i szybsze), gdyby istniało wbudowane, aby uzyskać pierwsze N liczb spełniających pewien warunek:
źródło