JE Maxfield udowodnił następujące twierdzenie (patrz DOI: 10.2307 / 2688966 ):
Jeśli jest dowolną liczbą całkowitą dodatnią cyfr, istnieje dodatnia liczba całkowita taka, że pierwsze cyfrstanowią całkowitą .
Wyzwanie
Twoje wyzwanie otrzymuje trochę znajdującą odpowiedni .
Detale
- reprezentuje silnię o .
- Cyfry w naszym przypadku są rozumiane jako podstawa .
- Twoje zgłoszenie powinno działać dla dowolnego biorąc pod uwagę wystarczającą ilość czasu i pamięci. Samo użycie np. Typów 32-bitowych do przedstawienia liczb całkowitych nie jest wystarczające.
- Nie koniecznie trzeba wyjściu z najmniejszą możliwą .
Przykłady
A N
1 1
2 2
3 9
4 8
5 7
6 3
7 6
9 96
12 5
16 89
17 69
18 76
19 63
24 4
72 6
841 12745
206591378 314
Najmniejszą możliwą dla każdego można znaleźć na https://oeis.org/A076219
Odpowiedzi:
Python 2 , 50 bajtów
Wypróbuj online!
Jest to odmiana 47-bajtowego rozwiązania wyjaśnionego poniżej, dostosowanego do zwrotu
1
danych wejściowych'1'
. (Mianowicie, dodajemy1
do pełnego wyrażenia, a nie do wywołania rekurencyjnego, i zaczynamy odliczać,n==2
aby usunąć jedną warstwę głębokości, równoważąc wynik dla wszystkich'1'
danych innych niż wejściowe.)Python 2 , 45 bajtów (mapy od 1 do
True
)To kolejna odmiana autorstwa: @Jo King i @xnor, która przyjmuje dane wejściowe jako liczbę i zwraca
True
dane wejściowe1
. Niektórzy uważają, że to uczciwa gra, ale osobiście uważam, że to trochę dziwne.Ale zawinięcie chropowatego wyniku logicznego kosztuje tylko 3 bajty
+()
, co daje nam krótsze „fajne” rozwiązanie:Python 2 , 48 bajtów
źródło
+1
.a
liczbę.-a
w-p
'', to fajna sztuczka :)Brachylog ,
35 bajtówWypróbuj online!
Pobiera dane wejściowe przez zmienną wyjściową i dane wyjściowe przez zmienną wejściową. (Odwrotnie, po prostu znajduje arbitralne prefiksy silni wejściowej, co nie jest aż tak interesujące.) Przekracza czas od ostatniego do ostatniego przypadku testowego na TIO, ale radzi sobie dobrze na ostatnim . W chwili pisania tego uruchomiłem go na 841 na moim laptopie i tak naprawdę jeszcze nie wydzieliłem odpowiedzi, ale wierzę w to.
Ponieważ jedyne wejście
ḟa₀
nie działa dla 1, a 1 jest dodatnim prefiksem 1! = 1,1|ḟa₀
działa równie dobrze.Ponadto od tej edycji 841 działało przez prawie trzy godziny i nadal nie wygenerowało danych wyjściowych. Chyba obliczenie silni każdej liczby całkowitej od 1 do 12745 nie jest dokładnie szybkie.
źródło
C ++ (gcc) ,
10795 bajtów, przy użyciu-lgmp
i-lgmpxx
Dzięki ludziom w komentarzach za wskazanie głupich wpadek.
Wypróbuj online!
Obliczan! przez pomnożenie (n−1)! przezn , a następnie kilkakrotnie dzieli go przez10 aż nie będzie już większy niż przekazana liczba całkowita. W tym momencie pętla kończy się, jeśli silnia jest równa przekazanej liczbie całkowitej lub wprzeciwnym razieprzechodzi do następnegon .
źródło
107
bajty.return
?Galaretka , 8 bajtów
Wypróbuj online!
Bierze liczbę całkowitą i zwraca singleton.
źródło
05AB1E , 7 bajtów
Wypróbuj online lub sprawdź prawie wszystkie przypadki testowe ( upłynął limit
841
czasu, więc jest wykluczony).Wyjaśnienie:
źródło
Pyth - 8 bajtów
Wypróbuj online .
źródło
JavaScript,
4743 bajtówDane wyjściowe jako BigInt.
Wypróbuj online!
Zaoszczędziłem kilka bajtów, przyjmując podejście Lynn do „budowania silni”, a nie obliczania jej przy każdej iteracji, więc proszę o głosowanie na jej rozwiązanie, jeśli popierasz to.
źródło
_Ês bU}f1
w Japt nie działas
.1
if, jeśli0
można zwrócićn=1
.x=i=1n;f=n=>`${x*=++i}`.search(n)?f(n):i
C # (.NET Core) , 69 + 22 = 91 bajtów
Wypróbuj online!
Zastosowania,
System.Numerics.BigInteger
które wymagająusing
oświadczenia.-1 bajt dzięki @ExpiredData!
źródło
Galaretka , 16 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Perl 6 , 23 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Węgiel drzewny , 16 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Naciśnij
1
pustą listę, aby rozpocząć od zdefiniowanego produktu.Powtarzaj, dopóki danych wejściowych nie można znaleźć na początku produktu z listy ...
... przesuń do siebie długość listy.
Wydrukuj ostatnią wartość wypchniętą na listę.
źródło
Perl 5
-Mbigint -p
, 25 bajtówWypróbuj online!
źródło
J ,
2822 bajtów-6 bajtów dzięki FrownyFrog
Wypróbuj online!
oryginalna odpowiedź J , 28 bajtów
Wypróbuj online!
>:@] ... x:@1
zaczynając od rozszerzonej precyzji1
, zwiększaj ją, jednocześnie ...-.@
nie jest tak, że ...{.@
pierwszy wiąz to mecz początkowy ...E.&":
wszystkie podłańcuchy pasują (po łańcuchowaniu obu argumentów&":
) wyszukiwania oryginalnego wejścia w ...!
silnia liczby, którą zwiększamyźródło
(]+1-0{(E.&":!))^:_&1x
C (gcc) -lgmp, 161 bajtów
Wypróbuj online!
źródło
strstr(b=mpz_get_str(0,10,_),a)-b;mpz_mul(_,_,n))mpz_add_ui(n,n,1)
zamiastb=mpz_get_str(0,10,_),strstr(b,a)-b;mpz_add_ui(n,n,1),mpz_mul(_,_,n))
Python 3 , 63 bajty
Wypróbuj online!
-24 bajty dzięki Jo King
-3 bajty dzięki Chasowi Brownowi
źródło
f=
że to, co masz w nagłówku, ma się liczyć do liczby bitów.Galaretka , 11 bajtów
Wypróbuj online!
źródło
Czysty , 88 bajtów
Wypróbuj online!
Definiuje
$ :: Integer -> Integer
.Używa
Data.Integer
liczb całkowitych o dowolnym rozmiarze dla operacji wejścia / wyjścia.źródło
Wolfram Language (Mathematica) , 62 bajty
Wypróbuj online!
źródło
Rubinowy , 40 bajtów
Wypróbuj online!
źródło
Ikona ,
6563 bajtówWypróbuj online!
źródło
Haskell, 89 bajtów
Jeśli ktoś wie, jak ominąć wymagany import, daj mi znać.
źródło