problema con aritmetica modular

Iniciado por + 1 Oculto(s), 22 Mayo 2016, 15:01 PM

0 Miembros y 1 Visitante están viendo este tema.

+ 1 Oculto(s)

estuve intentando pero no tengo ni idea como resolverlo

es el siguiente:

Citar
Big Mod

Calculate

displaymath25

for large values of B, P, and M using an efficient algorithm. (That's right, this problem has a time dependency !!!.)

Input

Three integer values (in the order B, P, M) will be read one number per line. B and P are integers in the range 0 to 2147483647 inclusive. M is an integer in the range 1 to 46340 inclusive.

Output

The result of the computation. A single integer.

Sample Input

3
18132
17

17
1765
3

2374859
3029382
36123

Sample Output

13
2
13195

AlbertoBSD

#1
Parece programa de los concursos de programacion.

Necesitas Exponenciacion modular.

En lugar de elevar a cierta potencia y despues sacar el modulo, se puede ir sacando modulo de la primera potencia y posteriormente aplicar modulo sobre ese resultado es mas rapido y eficiente...

El algoritmo completo esta descrito aqui...

https://es.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/fast-modular-exponentiation

Tengo una implementacion propia en C de numeros de longitud variable y he provado el algoritmo con numeros de mas de 40 o 50 digitos y funciona miy rapido
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

+ 1 Oculto(s)

si son de las competencias y muchas gracias lo revisare