To całkiem niezłe pytanie od młyna. Zdefiniuję sekwencję, a ty zagrasz w golfa kodem, aby wygenerować wpis z indeksem.
Pierwszy element w sekwencji to 2.
N-ty element w sekwencji to najmniejsza dodatnia liczba całkowita inna niż n i 1, dzieląca co najmniej jeden czynnik z n (inny niż 1), który nie pojawił się jeszcze na liście.
Przypadki testowe
Oto pierwsze 25 pozycji w sekwencji:
1 2
2 4
3 6
4 8
5 10
6 3
7 14
8 12
9 15
10 5
11 22
12 9
13 26
14 7
15 18
16 20
17 34
18 16
19 38
20 24
21 27
22 11
23 46
24 21
25 30
code-golf
number
sequence
permutations
Ad Hoc Garf Hunter
źródło
źródło
Python 3 ,
118117 bajtów-1 bajt dzięki Cameron Aavik !
Wypróbuj online!
Kod jest dość nieefektywny (brutalnie wymusza wartość, która nie istniała w poprzednich wynikach, i oblicza poprzednie wyniki dla każdej nowej wartości), więc działa poprawnie, ale nie zalecałbym uruchamiania go na dużych liczbach.
źródło
def f(n,i=3):
i usuwająci=3
linięHaskell ,
6059 bajtówEDYTOWAĆ:
all(/=x)
jest krótszy niżx`notElem`
.f
przyjmuje liczbę całkowitą i zwraca liczbę całkowitą.Wypróbuj online!
To bardzo wykładniczy czas, więc TIO kończy się po 21, podczas gdy mój interpretowany GHCi osiągnął 22, zanim go właśnie zatrzymałem. Następujące o 9 bajtów dłuższe wersje zapamiętujące na liście łatwo przechodzą w tysiące:
Wypróbuj online!
f n
używa rozumienia listy do generowania kandydatówx
, biorąc pierwszy mijający z!!0
.gcd x n>1
sprawdza tox
in
ma wspólne czynniki.||n<2
zwalnian==1
z wymogu dotyczącego czynnika.all(/=x)$n:map f[1..n-1]
sprawdza,x
czy nie jestn
ani poprzedzającym elementem sekwencji.źródło
all(/=x)$
jest tam 1 raz krótszyBrak wbudowanego GCD w C #, więc ...
C # (.NET Core) ,
197 196194 bajtówWypróbuj online!
Jeszcze raz powstrzymaj się od używania tego kodu do obliczania liczb w sekwencji dla
n>30
...while
pętli GCD dlafor
pętli.źródło
a>0&b>0
możnaa*b>0
APL (Dyalog) , 46 bajtów
Wypróbuj online!
źródło