//функция Эйлера
ulong Eyler(ulong n)
{
ulong res = n, en = Convert.ToUInt64(Math.Sqrt(n) + 1);
for (ulong i = 2; i <= en; i++)
if ((n % i) == 0)
{
while ((n % i) == 0)
n /= i;
res -= (res / i);
}
if (n > 1) res -= (res / n);
return res;
}
утечка памяти (как сказала этот добрый человек) наблюдается в функции
сравнения двух чисел gmp_cmp, если одно из них -строка, а не gmp число
Поэтому чтобы избежать утечки надо писать , например: