31 lines
640 B
C#
31 lines
640 B
C#
using System.Numerics;
|
|
|
|
static BigInteger Derivative(BigInteger k)
|
|
{
|
|
if (k < 0) return -Derivative(-k);
|
|
if (k < 2) return 0;
|
|
if (k.IsEven) return 2 * Derivative(k / 2) + k / 2;
|
|
BigInteger m = 3;
|
|
|
|
while (m * m <= k && (k % m) != 0)
|
|
m += 2;
|
|
|
|
var n = k / m;
|
|
if (m * n != k || m == 1 || n == 1) return 1;
|
|
return n * Derivative(m) + m * Derivative(n);
|
|
}
|
|
|
|
for (var i = -99; i <= 100; i++)
|
|
{
|
|
Console.Write($"{Derivative(i),6}");
|
|
if (i % 10 == 0) Console.WriteLine();
|
|
}
|
|
|
|
BigInteger p = 1;
|
|
|
|
for (var n = 1; n <= 20; n++)
|
|
{
|
|
p *= 10;
|
|
Console.WriteLine($"⅐ D(10^{n}) = {Derivative(p) / 7}");
|
|
}
|