π νμ΄
Aμ Bμ Cκ° κ³΅λ°±μ λκ³ μ λ ₯λλ€. μ°λ¦¬λ (A^B)%C κ°μ μΆλ ₯νλ©΄ λλ€. λ¨ A,B,C λ λͺ¨λ 2,147,483,647 μ΄νμ μμ°μμ΄λ€.
μμ λ²μκ° λ°©λνλ€. λλ¬Έμ 21μ΅λ² κ³±νλ€λ©΄ O(N)μ΄μ¬λ μκ°μ΄κ³Όκ° λ κ²μ΄λ€.
κ·Έλμ λλ¨Έμ§ λΆλ°°λ²μΉκ³Ό μ§μλ²μΉμ μ¬μ©νμ¬ λ΅μ ꡬνμλ€.
π μ§μλ²μΉ
(A^m)^n = (A^(m * n))
π λλ¨Έμ§ λΆλ°° λ²μΉ
(AxB) % C = (A%C) * (B%C) % C
μ°μ μ§μ λ²μΉμ μ¬μ©νμ¬ λΆν μ 볡μ νλ€. 2 ^ 32 μ κ°μ κ³μ°νλ λ°©λ²μ 2λ₯Ό 32λ² κ³±νλ λ°©λ²λ μμ§λ§ μ§μλ²μΉμ μ¬μ©νμ¬ (2^16)^2 16λ² κ³±ν κ²μ μ κ³±νλ λ°©μμΌλ‘ νλ©΄ μ΄ 17λ²μ μ°μ°μΌλ‘ μ€μΌ μ μλ€. μ΄ λ°©λ²μ κ³μ μ¬μ©νλ©΄ 10λ², μ°μ° 7λ²λ§μ κ²°κ³Όμ λλ¬ν μ μλ€.
λ§μ½ Bκ° 1μ΄λΌλ©΄ A 1μ κ³±μ΄λΌλ μλ―Έμ΄κΈ°μ λ°λ‘ κ·Έλ₯ A%Cλ₯Ό 리ν΄ν΄μ€λ€.
μμ λ₯Ό κ°μ§κ³ μ€λͺ ν΄λ³΄μ
A : 10, B : 11, C : 12
μμ λ μ°μ Bκ° νμμ΄λ€.
((A^5)*(A^5)*A)%C λ₯Ό μνν΄μ€μΌ νλ€.
νλ² λ μ§ννλ©΄,,
(((A^2)*(A^2)*A)*((A^2)*(A^2)*A)*A)%C μ΄λ κ² λλ€!
λ¬Έμλ₯Ό λ€μ μ«μλ‘ λ°κΏλ³΄μλ©΄,,
(10^5)(10^5)*10 μ΄ κ²½μ°λ Bκ° νμμΌ κ²½μ°μ΄λ€. μ κ³±κΌ΄μ Aλ₯Ό νλ² λ κ³±ν΄μ€λ€.
B κ° μ§μλΌλ©΄ Aλ₯Ό νλ² λ κ³±ν΄μ£Όμ§ μμλ λλ€.
π» μ½λ
def solve(a,b,c):
if b == 1: # κ±°λμ κ³±μ ν νμμμ λ°λ‘ aμ λλ¨Έμ§ λ¦¬ν΄
return a%c
else:
k = solve(a, b//2, c)
if b%2 == 0: # bκ° μ§μλΌλ©΄
return (k*k)%c
else: # bκ° νμλΌλ©΄
return (k*k*a)%c
a,b,c = map(int, input().split())
print(solve(a,b,c))
π λ¬Έμ λ§ν¬ : κ³±μ
λμλ°μ κΈλ€ : κ°λ° νμ½κ³ , grace0st
'Problem Solving > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 2606λ²: λ°μ΄λ¬μ€ - νμ΄μ¬ (0) | 2022.05.19 |
---|---|
[λ°±μ€] 1918λ²: νμνκΈ°μ - νμ΄μ¬ (0) | 2022.05.16 |
[λ°±μ€] 14425λ²: λ¬Έμμ΄ μ§ν© - νμ΄μ¬ (0) | 2022.05.15 |
[λ°±μ€] 7795λ²: λ¨Ήμ κ²μΈκ° λ¨Ήν κ²μΈκ° - νμ΄μ¬ (0) | 2022.05.09 |
[λ°±μ€] 1935λ²: νμ νκΈ°μ2 - νμ΄μ¬ (0) | 2022.05.08 |