Utwórz najkrótszą funkcję, program lub wyrażenie, które oblicza A073329 , tj. a(n)
Jest n-tą liczbą mającą n różnych czynników pierwszych. Dane wejściowe to liczba elementów w sekwencji do zwrócenia. 0 < n
. Nie interesuje mnie precyzja liczb całkowitych. Chcę tylko algorytmu. W przypadku języków, które nie obsługują dowolnie dużych liczb całkowitych, udajemy, że tak.
Przypadki testowe można znaleźć, klikając podany powyżej link do OEIS.
AKTUALIZACJA:
Pozwól, że wyjaśnię, że musisz zwrócić sekwencję całkowitą z programu, funkcji lub wyrażenia. Innymi słowy, f(x)
należy obliczyć a(n)
dla wszystkich n
od 1 do x
. Biorąc x
pod uwagę 8, twoja funkcja powinna powrócić 2, 10, 60, 420, 4290, 53130, 903210, 17687670
jako tablica lub inna odpowiednia struktura danych.
output a(1), ... a(n)
zamiast zwracać coś, na przykład tablicę ...Odpowiedzi:
Python, 144 znaki
Uruchomienie do ukończenia zajmuje około 2 minut dla x = 8.
źródło
Java, 170 znaków w jednym wierszu
Aktualizacja, +77 znaków IOL
źródło
Java (Unngolfed)
Wykorzystuje algorytm sita. To jest dość szybkie. (6 sekund) Będzie działać dokładnie dla upto
8
, prawdopodobnie zawiedzie dla czegoś wyższego.źródło
JavaScript, 149 znaków
Nie odpowiada na n> = 6, więc nie sprawdziłem, ile czasu to zajmuje (moja przeglądarka wyświetla zawieszone powiadomienie skryptu co około 10 sekund, dlatego nie mogę dokładnie określić czasu i nie chcę się całkowicie zawiesić, jeśli zaznacz „nie pokazuj tego ponownie” ...)
Edycja: Aby zwrócić tablicę, ma 200 znaków (+51) :
źródło
J, 32 bajty
Ale ponieważ odpowiadam na własne pytanie tak późno, zostawimy tę odpowiedź jako ciekawość.
źródło