Dla dodatniej liczby całkowitej n
z rozkładem liczb pierwszych, n = p1^e1 * p2^e2 * ... pk^ek
gdzie p1,...,pk
są liczbami e1,...,ek
całkowitymi i dodatnimi liczbami całkowitymi, możemy zdefiniować dwie funkcje:
Ω(n) = e1+e2+...+ek
liczba głównych dzielników (liczona jako wielokrotność) ( A001222 )ω(n) = k
liczba wyraźnych głównych dzielników. ( A001221 )
Za pomocą tych dwóch funkcji definiujemy nadwyżkę e(n) = Ω(n) - ω(n)
( A046660 ). Można to uznać za miarę zbliżenia liczby do liczby kwadratowej.
Wyzwanie
Dla danego dodatniego n
zwrotu liczby całkowitej e(n)
.
Przykłady
Dla n = 12 = 2^2 * 3
mamy Ω(12) = 2+1
i ω(12) = 2
i dlatego e(12) = Ω(12) - ω(12) = 1
. Dla każdej liczby n
wolnej od kwadratów mamy oczywiście e(n) = 0
. Pierwsze kilka warunków to
1 0
2 0
3 0
4 1
5 0
6 0
7 0
8 2
9 1
10 0
11 0
12 1
13 0
14 0
15 0
^
to potęgaOdpowiedzi:
MATL ,
75 bajtówWypróbuj online! Lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie
źródło
factor
działa MATL, naprawdę fajnie =)YF
(w 7-bajtowej wersji kodu) czyYf
(5-bajtowa)? Ten ostatni jest jak w MATLABBrachylog , 11 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Mathematica, 23 bajty
Bardzo nudny.
FactorInteger
zajmuje już 13 bajtów i nie widzę wiele, co można zrobić z pozostałymi 10.źródło
Galaretka , 5 bajtów
Wypróbuj online!
Sprawdź wszystkie przypadki testowe.
Port w odpowiedzi Luisa Mendo w Mátl .
źródło
ÆF’SṪ
¬
mnie zdezorientowała. Nie wiedziałem, że to wektoryzacja05AB1E , 6 bajtów
Wyjaśnienie
Wypróbuj online!
źródło
J,
1110 bajtówZaoszczędził 1 bajt dzięki Jonaszowi .
źródło
1#.1-~:@q:
na 10 bajtów. fajny pomysł za pomocą~:
btw.Pyth, 7 bajtów
Wypróbuj online.
źródło
C, 74 bajty
Ideone to!
źródło
Python 2,
5756 bajtówDzięki @JonathanAllan za grę w golfa na 1 bajcie!
Przetestuj na Ideone .
źródło
n/k%k<1
Haskell, 65 bajtów
źródło
05AB1E , 4 bajty
Port odpowiedzi MATL @LuisMendo .
Wypróbuj online lub sprawdź pierwsze 15 przypadków testowych .
Wyjaśnienie:
źródło
Python 2,
100999896 bajtówWiększość kodu zajmuje wersja gry w golfa tej odpowiedzi SO , która przechowuje główne czynniki wejściowe
f
. Następnie po prostu używamy manipulacji zestawem, aby obliczyć współczynniki nadmiaru.Dzięki Leaky Nun za zaoszczędzenie
13bajtów!źródło
Brachylog , 11 bajtów
Wypróbuj online!
Sprawdź wszystkie przypadki testowe. (Opakowanie jest dłuższe niż funkcja ...)
źródło
SILOS , 113 bajtów
Wypróbuj online!
Port mojej odpowiedzi w C .
źródło
JavaScript (ES6),
535146 bajtówZaoszczędź 5 bajtów dzięki Neilowi
Przykład:
źródło
r
rekurencyjnie:f=(n,i=2)=>i<n?n%i?f(n,i+1):f(n/=i,i)+!(n%i):0
.Bash, 77 bajtów
Kompletny program z wejściem
$1
i wyjściem na standardowe wyjście.Postawiliśmy
IFS
na początku nowej linii, tak że rozszerzenie"${f[*]}"
jest nowej linii oddzielone. Używamy podstawienia arytmetycznego, aby wydrukować różnicę między liczbą słów w faktoryzacji z wynikiem filtrowaniauniq
. Sama liczba jest drukowana jako przedrostekfactor
, ale jest także obecna po filtrowaniu, więc wypada odejmując.źródło
Python (z sympią) 66 bajtów
sympy.factorint
zwraca słownik z czynnikami takimi jak klucze i ich wielokrotności jako wartości, więc suma wartości jest,Ω(n)
a liczba wartości jestω(n)
, więc suma wartości pomniejszonych jest tym, czego chcemy.źródło
CJam, 11 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
C 158
Na początku jest instrukcja goto ... nawet jeśli jest ona dłuższa niż twoja, jest bardziej czytelna i właściwa [jeśli nie uważam, że jest zbyt duża ...] jeden język, który ma 10000 funkcji bibliotecznych, jest przewartościowany niż język że przy kilku, 20 lub 30 funkcjach bibliotecznych można zrobić wszystko lepiej [ponieważ nie pamiętamy wszystkich tych funkcji]
źródło
GNU sed + coreutils, 55 bajtów
(w tym +1 za
-r
flagę)Wprowadzanie dziesiętne, na standardowe; wyjście w jednym, na standardowym wyjściu.
Wyjaśnienie
źródło
APL (NARS) 35 znaków, 70 bajtów
funkcja π znajduje rozkład na czynniki pierwsze w argumencie; mało kto mówi, że wydaje się to jasne, ale dla mnie wykonuje więcej operacji (od faktoryzacji) niż minimum ... zakres znaków liczenia jest obecnie w golfie, ponieważ wydaje się, że jest to zbyt wiele, ale mniej niż języki golfa ... test:
źródło