Похідна функції є наріжним каменем математики, техніки, фізики, біології, хімії та великої кількості інших наук. Сьогодні ми будемо обчислювати щось тільки тангенціально пов'язане: арифметичну похідну.
Визначення
Арифметична похідна a(n)
або n'
визначається тут ( A003415 ) низкою властивостей, схожих на похідну функції.
a(0) = a(1) = 0
,a(p) = 1
, деp
є будь-який прайм, іa(mn) = m*a(n) + n*a(m)
.
Третє правило засноване на правилі продукту для диференціації функцій: для функцій f(x)
і g(x)
, (fg)' = f'g + fg'
. Так з числами, (ab)' = a'b + ab'
.
Також слід зазначити, оскільки арифметична похідна може бути розширена до від’ємних чисел за допомогою цього простого відношення, a(-n) = -a(n)
вхід може бути від’ємним.
Правила
- Напишіть програму або функцію, яка за будь-яким цілим числом
n
повертає арифметичну похіднуn
. - Вхідні дані будуть , щоб уникнути проблем із цілими розмірами та числами, занадто великими, щоб мати значення в розумний проміжок часу. Ваш алгоритм все ще повинен мати можливість теоретично обчислити арифметичну похідну чисел за межами цього діапазону.
-230 < n < 230
- Дозволено вбудовувати символічну математику, основну факторизацію та диференціацію.
Приклади
> 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
Як завжди, якщо проблема неясна, будь ласка, повідомте мене про це. Успіхів і хорошого гольфу!
prime
вa(prime)
? Це просто просте число?