Recursion 곱셈 - BOJ_1629
곰셈
모듈러 성질 [ (ab) mod c = ((a mod c)(b mod c)) mod c ] 을 알고있어야 한다.
Divide and Conquer 방식으로 재귀를 통해 문제를 풀 수 있다.
// 2022-03-15
// https://www.acmicpc.net/problem/1629
import java.io.*
import java.math.BigInteger
var A=0L
var C=0L
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val (a,b,c) = readLine().split(' ').map{it.toInt()}
A=a.toLong()
C=c.toLong()
print(re(b))
}
fun re(b:Int):Long {
if(b==1) return (A%C)
val tmp = re(b/2)
return if(b%2==0) (tmp%C)*(tmp%C)%C else ((((tmp%C)*(A%C))%C)%C)*(tmp%C)%C
}