Два к власти некоторого большого числа

Может кто-нибудь сказать мне, как найти (2^101100111000)%1000000007 в C? Существует проблема, в которой мы должны преобразовать число в двоичное (1<=N<=600000) и найти 2^(двоичное представление N) по модулю 1000000007.

1 ответ

Значения, о которых вы говорите, не будут вписываться в стандартную длину для любой архитектуры, поэтому вам придется использовать математическую библиотеку произвольной точности, такую ​​как GMP.

Хмм, просто прочитайте ответ Zong... он указывает на более эффективный метод... еще не закончил читать статью, но похоже, что лучший путь...

Другие вопросы по тегам