La derivata di una funzione è una pietra angolare della matematica, dell'ingegneria, della fisica, della biologia, della chimica e anche di un gran numero di altre scienze. Oggi calcoleremo qualcosa solo tangenzialmente correlato: la derivata aritmetica.
Definizione
La derivata aritmetica a(n)
o n'
è definita qui ( A003415 ) da un numero di proprietà che sono simili alla derivata di una funzione.
a(0) = a(1) = 0
,a(p) = 1
, dov'èp
un numero primo ea(mn) = m*a(n) + n*a(m)
.
La terza regola è basata sulla regola del prodotto per la differenziazione di funzioni: per le funzioni f(x)
e g(x)
, (fg)' = f'g + fg'
. Quindi, con i numeri, (ab)' = a'b + ab'
.
Inoltre, poiché la derivata aritmetica può essere estesa ai numeri negativi tramite questa semplice relazione a(-n) = -a(n)
, l'input può essere negativo.
Regole
- Scrivi un programma o una funzione che, dato un numero intero
n
, restituisca la derivata aritmetica din
. - Gli input saranno , per evitare problemi con dimensioni di numeri interi e numeri troppo grandi per tener conto di un ragionevole lasso di tempo. Il tuo algoritmo dovrebbe essere comunque in grado di calcolare teoricamente la derivata aritmetica dei numeri al di fuori di questo intervallo.
-230 < n < 230
- Sono ammessi elementi incorporati per la matematica simbolica, la scomposizione in fattori primi e la differenziazione.
Esempi
> 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
Come sempre, se il problema non è chiaro, per favore fatemi sapere. Buona fortuna e buon golf!
prime
ina(prime)
? È solo un numero primo?