[알고리즘] 고속 거듭제곱
CS/알고리즘
2021. 3. 29. 15:46
문제 양의 정수 M, e, n, d에 대하여 C = M^e mod n을 구하시오. (mod는 나머지를 구하는 연산이다). 그리고 위의 C에 대하여 C^d mod n을 구하시오. 단, 양의 정수 a, k, n에 대하여 ak mod n을 구하는 방법은 다음을 이용한다. a^k mod n = a mod n if k = 1 = (a^2/k mod n)^2 mod n if k가 짝수 = (a*(a^k-1 mod n)) mod n if k가 홀수 입력 예시 15 3 7 33 // M e d n 출력 예시 9 15 나의 풀이 처음에 그냥 쉽게 생각했다. 거듭제곱을 구하는 함수 작성(재귀함수를 이용) 문제의 조건을 그대로 mod 함수로 만들어서 mod한 값을 다시 mod 함수에 넣어서 print하기 이렇게 생각하여 d..