To nie ma praktycznego celu, ale golf może być świetną zabawą.
Wyzwanie
Biorąc pod uwagę liczbę n ,
- Policzyć ilość każdej cyfry w n i dodać 1 do każdej liczby
- Weźmy pierwszą faktoryzację n
- Policz liczbę każdej cyfry w rozkładzie na czynniki pierwsze n , bez uwzględnienia podwójnych liczb pierwszych
- Utwórz nową listę, mnożąc odpowiednie elementy list z kroków 1 i 3
- Zwraca sumę tej listy
Na przykład 121 ma dwa 1
si a 2
, więc w kroku 1 uzyskasz następującą listę:
0 1 2 3 4 5 6 7 8 9
1 3 2 1 1 1 1 1 1 1
Pierwotna faktoryzacja 121 wynosi 11 2 , co daje następującą listę dla kroku 3:
0 1 2 3 4 5 6 7 8 9
0 2 0 0 0 0 0 0 0 0
Zwróć uwagę, że nie policzyliśmy wykładnika. Mnożą się one razem, aby uzyskać:
0 1 2 3 4 5 6 7 8 9
0 6 0 0 0 0 0 0 0 0
A suma tej listy wynosi 6.
Przypadki testowe
1 -> 0
2 -> 2
3 -> 2
4 -> 1
5 -> 2
10 -> 2
13 -> 4
121 -> 6
Notatki
- Standardowe luki są zabronione.
- Dane wejściowe i wyjściowe mogą być w dowolnym rozsądnym formacie.
- Powinieneś zostawić jedynki (lub zera dla kroku 3) na liście dla cyfr, które nie pojawiły się w numerze.
- To jest golf golfowy , więc wygrywa najkrótsze rozwiązanie w bajtach.
232792560
->[2,1,4,2,1,2,2,2,1,2]
(krok 1);2*2*2*2*3*3*5*7*14*17*19
(krok 2); tak[0,5,1,2,0,1,0,2,0,1]
(krok 3); następnie[0,5,4,4,0,2,0,4,0,2]
(krok 4); i dlatego powinien generować21
.Odpowiedzi:
Galaretka , 16 bajtów
Wypróbuj online!
Opracowany niezależnie od innego rozwiązania Jelly i nie do końca taki sam .
Wyjaśnienie
Mam zamiar użyć
242
jako przykładowego wejścia.źródło
Galaretka ,
1817 bajtów-1 bajt dzięki Cairnowi Coherheringaahing i H.PWiz (unikaj parowania dwóch wektorów)
Łącze monadyczne przyjmujące dodatnią liczbę całkowitą i zwracające nieujemną liczbę całkowitą.
Wypróbuj online!
W jaki sposób?
źródło
APL (Dyalog) ,
4341 bajtówWypróbuj online!
W jaki sposób?
r←⎕
- wejście dor
3pco
- czynniki pierwsze∪
- wyjątkowy⎕D,r
-r
z dodatkiem0-9
⍕¨
- sformatuj współczynniki i zalecany zakres⎕D∘.=
- porównanie kartezjańskie z każdym elementem łańcucha0123456789
+/¨
- zsumuj każdy wiersz dwóch utworzonych tabel×/
- pomnożyć dwa pozostałe wektory+/
- zsumuj ostatni utworzony wektorźródło
Pip , 44 bajty
Pobiera dane wejściowe z argumentu wiersza polecenia. Wypróbuj online!
źródło
Python 2 ,
136127 bajtówWypróbuj online!
Kredyty
źródło
-~
zawsze byłem trochę zdezorientowany. I muszę zacząć pamiętać o tym<1
. Dzięki za pomoc.-~
i związanej rzeczy.