Здравствуйте, свежевыпеченные друзья, сидящие в тостере.
У меня такая проблема: решил ради забавы "поискать" числа Ферма. Воспользовался 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;
}
Вопрос такой: Можно ли как-нибудь ускорить возведение в степень?