Pochodna funkcji jest kamieniem węgielnym matematyki, inżynierii, fizyki, biologii, chemii i wielu innych nauk. Dzisiaj będziemy obliczać coś tylko stycznie zależnego: pochodną arytmetyczną.
Definicja
Pochodna arytmetyczna a(n)
lub n'
jest zdefiniowana tutaj ( A003415 ) przez szereg właściwości, które są podobne do pochodnej funkcji.
a(0) = a(1) = 0
,a(p) = 1
, gdziep
jest jakaś liczba pierwsza, oraza(mn) = m*a(n) + n*a(m)
.
Trzecia zasada opiera się na zasadzie produktowej dla zróżnicowania funkcji: dla funkcji f(x)
i g(x)
, (fg)' = f'g + fg'
. Więc z liczb (ab)' = a'b + ab'
.
Należy również zauważyć, że ponieważ pochodną arytmetyczną można rozszerzyć na liczby ujemne za pomocą tej prostej zależności a(-n) = -a(n)
, dane wejściowe mogą być ujemne.
Zasady
- Napisz program lub funkcję, która przy dowolnej liczbie całkowitej
n
zwraca arytmetyczną pochodnąn
. - Wejścia będą
-230 < n < 230
, aby uniknąć problemów z liczbami całkowitymi i liczbami zbyt dużymi, aby uwzględnić je w rozsądnym czasie. Twój algorytm powinien nadal być w stanie teoretycznie obliczyć pochodną arytmetyczną liczb spoza tego zakresu. - Dozwolone są wbudowane funkcje matematyki symbolicznej, faktoryzacji i rozróżniania liczb pierwszych.
Przykłady
> a(1)
0
> a(7)
1
> a(14) # a(7)*2 + a(2)*7 = 1*2 + 1*7 = 9
9
> a(-5) # a(-5) = -a(5) = -1
-1
> a(8) # a(8) = a(2**3) = 3*2**2 = 12
12
> a(225) # a(225) = a(9)*25 + a(25)*9 = 6*25 + 10*9 = 150 + 90 = 240
240
> a(299792458) # a(299792458) = a(2)*149896229 + a(7)*42827494 + a(73)*4106746 + a(293339)*1022 = 1*149896229 + 1*42827494 + 1*4106746 + 1*1022 = 149896229 + 42827494 + 4106746 + 1022 = 196831491
196831491
Jak zawsze, jeśli problem jest niejasny, daj mi znać. Powodzenia i dobrej gry w golfa!
prime
wa(prime)
środku? Czy to tylko liczba pierwsza?