Descripción del problema
Dado A, B, P, encuentre (A ^ B) mod P.
Formato de entrada
Ingresa una línea.
Hay tres números en la primera línea, N, M, P.
Hay tres números en la primera línea, N, M, P.
Formato de salida
La salida es una línea, que indica la solicitud.
Entrada de muestra
2 5 3
Salida de muestra
2
Tamaño de datos y acuerdo
Hay 10 conjuntos de datos.
Para el 100% de los datos, A y B son enteros no negativos en el rango de largo largo, y P es un entero no negativo en el int.
Para el 100% de los datos, A y B son enteros no negativos en el rango de largo largo, y P es un entero no negativo en el int.
Se agregan historias tristes.
Pregunta de plantilla desnuda, copiar y pegar, 40 puntos
Entonces los detalles del módulo estaban equivocados.
Código de 40 puntos
1 #include <bits / stdc ++. H> 2 usando el espacio de nombres std; 3 typedef largo largo ll; 4 ll quick_pow (ll x, ll y, ll c) { 5 ll ans = 1 ; 6 while (y) { 7 if (y & 1 ) { 8 ans = (ans% c * x% c)% c; 9 } 10 x = (x% c * x% c)% c; 11 y >> = 1 ; 12 } 13 return ans; 14 } 15 int main () { 16 ll x, y, p; 17 while (cin >> x >> y >> p) { 18 ll ans = quick_pow (x, y, p); 19 cout << ans << endl; 20 } 21 devuelve 0 ; 22 }
Código de 100 puntos
1 #include <bits / stdc ++. H> 2 usando el espacio de nombres std; 3 typedef largo largo ll; 4 ll quick_pow (ll x, ll y, ll c) { 5 ll ans = 1 ; 6 while (y) { 7 if (y & 1 ) { 8 ans = (ans% c * x% c)% c; 9 } 10 x = (x% c * x% c)% c; 11 y >> = 1 ; 12 } 13 return ans; 14 } 15 int main () { 16 ll x, y, p; 17 while (cin >> x >> y >> p) { 18 ll ans = quick_pow (x% p, y, p); 19 cout << ans << endl; 20 } 21 devuelve 0 ; 22 }
Encuentra diferentes series