Wejście
Pojedyncza liczba całkowita .
Wynik
Maksymalna liczba wyraźnych liczb całkowitych dodatnich, które mają iloczyn .
Przykłady
Dane wejściowe: 1099511627776. Dane wyjściowe: 9. Jedną z możliwych optymalnych list czynników jest: (1, 2, 4, 8, 16, 32, 64, 128, 4096).
Dane wejściowe: 127381. Dane wyjściowe 4. Jedną z możliwych optymalnych list czynników jest: (1, 17, 59, 127).
Powiązane z tym starym pytaniem .
code-golf
. Można rozważyć albofastest-code
czyfastest-algorithm
na nadchodzące wyzwania. Jeśli naprawdę chciałeś, aby wszystkie odpowiedzi działały w ograniczonym czasie w określonym zakresie, należy to wyraźnie zaznaczyć. (I zaleciłbym mniejszy zakres, aby nie byłcode-golf
całkowicie sprzeczny .)x=1, 2, ...
dostaję,f(x)=1, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 2, 3, 2, 3, 3, 3, 2, 4, 2, 3, 3, 3, 2, 4, 2, 3, 3, 3, 3, 4, 2, 3
czego nie znalazłem w OEIS. Jest wystarczająco jasne, że rekordy pojawią się dla liczb silnix
. Na przykład najmniejszyx
taki, któryf(x)=13
będzie13!
. Myślę, żef
zależy tylko od wykładników pierwszej faktoryzacji. Aby znaleźć,f(13^4*19^7*29^2)
możemy uprościćf(2^7*3^4*5^2)
.Odpowiedzi:
Wolfram Language (Mathematica) , 52 bajty
Wypróbuj online!
4 bajty zapisane dzięki @attinat
Tutaj jest także wersja 153-bajtowa, która oblicza
1099511627776
i10^15
Wypróbuj online!
Wynik dla
10^15
to 12źródło
Wolfram Language (Mathematica) , 38 bajtów
Wypróbuj online!
Chciwy algorytm. Przekracza limit czasu TIO przy większych wejściach, takich jak
1099511627776
.źródło
05AB1E , 9 bajtów
Bardzo nieefektywne. Przekroczę limit czasu na TIO dla liczb z dużą liczbą dzielników.
Wypróbuj online!
Wyjaśnienie
źródło
€gZ
jest nieco bardziej wydajny niżéθg
dla tego samego bajtu.Perl 6 , 38 bajtów
Wypróbuj online!
Podchodzi chciwie do wyboru dzielników.
źródło
JavaScript (ES6), 39 bajtów
Prawdopodobnie jest kilka bajtów, które można zapisać tu i tam. Po prostu używa chciwego algorytmu dla czynników.
źródło
Galaretka , 9 bajtów
Wypróbuj online!
-1 bajt dzięki komuś
-2 bajty dzięki ErikTheOutgolfer
źródło
ÆE×8‘½’:2S‘
(to współpracuje z mocą sekcji „formuła” OEIS dla A003056). Oświadczenie: może być źle, ale działa na przypadkach testowych.ÆD
Japt
-h
, 13 bajtówSpróbuj
źródło
Brachylog , 8 bajtów
Wypróbuj online!
(Naiwne podejście
{~×≠l}ᶠ⌉
generuje nieskończoną liczbę rozwiązań z dodatkowymi 1s przed ich wyeliminowaniem≠
, a tym samym nie kończy się. To jednak nie jest problem, ponieważ dotyczy tej samej liczby bajtów!)Pobiera dane wejściowe przez zmienną wejściową i dane wyjściowe przez zmienną wyjściową. Nagłówek TIO zawiera kopię większości kodu w celu pokazania, czym jest lista czynników, ale bez tego działa ona doskonale. Ponieważ
⊇
najpierw daje większe listy podrzędne, ten predykat zasadniczo robi to samo, co większość innych odpowiedzi, ale bez wyraźnego generowania i filtrowania pełnego zestawu czynników, dzięki cofnięciu.źródło
Scala , 77 bajtów
Wypróbuj online!
źródło
Gaia ,
109 bajtówWypróbuj online!
Podąża za tym samym „algorytmem”, jak pokazano gdzie indziej - najdłużej przefiltruj zestaw dzielników z iloczynem równym liczbie i zwróć jego długość.
źródło
Clam , 15 bajtów
Link do TIO już wkrótce (kiedy Dennis ściąga)
Zasadniczo port rozwiązania 05AB1E @ Emigna.
Wyjaśnienie
źródło
C # (interaktywny kompilator Visual C #) , 54 bajty
Stosuje to samo podejście, co odpowiedzi @ vrugtehagel i @ JoKing.
Wypróbuj online!
źródło
Rubinowy , 34 bajty
Oczywiście przekroczono limit czasu dla tej ogromnej liczby, ale ostatecznie upłynie limit czasu, jeśli będzie wystarczająco dużo czasu na innej maszynie.
Wypróbuj online!
źródło