정수론에 관한 문제이다.
새로운 이론은 없으며 다만 연산해야 하는 제곱수 N을 log(N)으로 줄여 연산하였다.
MOD는 제곱에 대하여 결합과 교환법칙이 성립하므로 쉽게 풀 수 있는 문제이다.
#include<iostream>
#define MOD 1000000007
using namespace std;
int main(int argc, char** argv)
{
long long N, K, P;
cin >> K >> P >> N;
N *= 10;
int cur = 1;
while(1) {
if(N == 1)
break;
if(N % 2 == 0)
{
P = P * P;
P %= MOD;
N /= 2;
}
else
{
K *= P;
K %= MOD;
N--;
}
}
long long out = K * P;
out %= MOD;
cout << out << '\n';
return 0;
}
'Coding_Test 연습 > Softeer' 카테고리의 다른 글
[현대 소프티어] (C++) 우물 안 개구리 (0) | 2022.11.04 |
---|---|
[현대 소프티어] (C++) 금고털이 (0) | 2022.11.02 |
[현대 소프티어] (C++) 강의실 배정 (0) | 2022.10.31 |
[현대 소프티어] (C++) 징검다리 (0) | 2022.10.30 |
[현대 소프티어] (C++) 성적 평균 (0) | 2022.10.30 |