Desbordamiento: a * a mod n

Necesito calculara*a modn peroa es bastante grande, lo que resulta en un desbordamiento cuando lo cuadré. Obra((a%n)*(a%n))%n no funciona porque (n-1)2 puede desbordarse. Esto está en C ++ y estoy usando int 64's.

edición: ejemplo un valor = 821037907258 y n = 800000000000, que se desborda si lo cuadramos.

Estoy usando DevCPP y ya he intentado que las bibliotecas de enteros grandes funcionen sin éxito.

Edición 2: No, no hay ningún patrón para estos números.

Respuestas a la pregunta(5)

Su respuesta a la pregunta