Przepełnienie: a * a mod n

Muszę obliczyća*a modn alea jest dość duży, powodując przepełnienie, gdy go ustawię. Robić((a%n)*(a%n))%n nie działa, ponieważ (n-1)2 może przepełnić. To jest w C ++ i używam int 64's.

edytuj: przykład wartość = 821037907258 i n = 800000000000, która przelewa się, jeśli ją ustawisz.

Korzystam z DevCPP i już próbowałem uzyskać biblioteki o dużej liczbie całkowitej działające bezskutecznie.

edytuj 2: Nie, nie ma wzoru do tych liczb.

questionAnswers(5)

yourAnswerToTheQuestion