C# функция Эйлера - пример реализации - код

пример таков:

//функция Эйлера
        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;
        }