Два к власти некоторого большого числа
Может кто-нибудь сказать мне, как найти (2^101100111000)%1000000007 в C? Существует проблема, в которой мы должны преобразовать число в двоичное (1<=N<=600000) и найти 2^(двоичное представление N) по модулю 1000000007.
1 ответ
Значения, о которых вы говорите, не будут вписываться в стандартную длину для любой архитектуры, поэтому вам придется использовать математическую библиотеку произвольной точности, такую как GMP.
Хмм, просто прочитайте ответ Zong... он указывает на более эффективный метод... еще не закончил читать статью, но похоже, что лучший путь...