Foro de elhacker.net

Programación => Java => Mensaje iniciado por: + 1 Oculto(s) en 22 Mayo 2016, 15:01 pm



Título: problema con aritmetica modular
Publicado por: + 1 Oculto(s) en 22 Mayo 2016, 15:01 pm
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


Título: Re: problema con aritmetica modular
Publicado por: AlbertoBSD en 22 Mayo 2016, 17:29 pm
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


Título: Re: problema con aritmetica modular
Publicado por: + 1 Oculto(s) en 22 Mayo 2016, 18:30 pm
si son de las competencias y muchas gracias lo revisare