@1ncomparable

Вычисление чисел Ферма. Почему так медленно?

Здравствуйте, свежевыпеченные друзья, сидящие в тостере.
У меня такая проблема: решил ради забавы "поискать" числа Ферма. Воспользовался System.Numerics.BigInteger. В методах этой структуры был Pow, но он мог возводить в степень Int32, поэтому я соорудил такой костыль:
static BigInteger PPow(byte num, BigInteger exp)
        {
            BigInteger result = 1;
            uint n = (uint)(exp / Int32.MaxValue);
            Parallel.For(0, n, i =>
            {
                lock (lockobj)
                {
                    result *= BigInteger.Pow(num, Int32.MaxValue);
                    exp -= Int32.MaxValue;
                }

            });
            result *= BigInteger.Pow(num, (int)exp);
            return result;
        }

Вопрос такой: Можно ли как-нибудь ускорить возведение в степень?
  • Вопрос задан
  • 296 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Sumor
Используйте алгоритм быстрого возведения в степень Аль-Коши
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы