Алгоритм C / C ++: самый быстрый способ вычисления (2 ^ n)% d с 32- и 64-разрядными целыми числами n и d
Я ищу алгоритм, который позволяет мне вычислить(2^n)%d
с участиемn и d 32 или 64 битные целые числа.
Проблема в том, что невозможно хранить2^n
в памяти даже с библиотеками multiprecision, но, возможно, существует хитрость для вычисления(2^n)%d
только используя 32 или 64-битные целые числа.
Большое спасибо.