https://www.acmicpc.net/problem/1629
๋ฌธ์
์์ฐ์ A๋ฅผ B๋ฒ ๊ณฑํ ์๋ฅผ ์๊ณ ์ถ๋ค. ๋จ ๊ตฌํ๋ ค๋ ์๊ฐ ๋งค์ฐ ์ปค์ง ์ ์์ผ๋ฏ๋ก ์ด๋ฅผ C๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ A, B, C๊ฐ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ฃผ์ด์ง๋ค. A, B, C๋ ๋ชจ๋ 2,147,483,647 ์ดํ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ A๋ฅผ B๋ฒ ๊ณฑํ ์๋ฅผ C๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค.
์ํ์ฐฉ์ค
์งง๊ณ ๊ฐ๋จํ ๋ฌธ์ ใ ใ
๋ฐ๋ณต๋ฌธ์ ์ด์ฉํ์ฌ ์ฝ๊ฒ ํ์๋คใ ใ
// Authored by : seondal
// Co-authored by : -
//#include <bits/stdc++.h>
#include <iostream>
using namespace std;
using ll = long long;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
ll a,b,c;
cin >> a >> b >> c;
ll val = 1;
while(b--) val = val * a % c;
cout << val;
return 0;
}
/*
*/
์ด๋ฆผ๋์์ง ์๊ฐ์ด๊ณผ~~
์ ๋ ฅ์กฐ๊ฑด์ด ์ด๋ฏธ 20์ต๋.... int ๋ฒ์ ์ด๋ฏธ ๋์ด๋ฒ๋ ธ๋ค
ํ์ด
์กฐ๊ธ ๋ณต์กํ์ง๋ง.. ์ฌ๊ทํจ์๋ฅผ ์ด์ฉํด์
๊ฐ์ด ๋์ฌ๋๋ง๋ค ๋๋จธ์ง ์ฐ์ฐ์ ๋ฏธ๋ฆฌ ํด์ฃผ๋ ๋ฐฉ์์ผ๋ก
๊ฐ๋ค์ ๊น์๋๋ค (?)
๊ทธ ๊ณ ๋ฑํ๊ต ์ ๊ณฑ ์ฐ์ฐ๋ ๋ฐฐ์ฐ๋ ๊ณต์
a^n * a^n = a^(2n)
์ ์ฌ์ฉํ์๊ณ
b๊ฐ ํ์๊ฑฐ๋ ์ง์์ธ ๊ฒฝ์ฐ๋ง if ์ฐ์ฐ ์ด์ฉํด์ ์ฒ๋ฆฌํด์คฌ๋ค
// Authored by : seondal
// Co-authored by : -
//#include <bits/stdc++.h>
#include <iostream>
using namespace std;
using ll = long long;
ll func(ll a, ll b, ll c) {
if(b == 1) return a % c;
ll tmp = func(a, b/2, c);
tmp = tmp * tmp % c; // func(a, b, c) ๊ฐ ์ฐ์ฐ๋จ
// b๊ฐ ์ง์๋ฉด ๊ทธ๋๋ก ๋ฆฌํด, ํ์๋ฉด ํ๋ฒ ๋ ๊ณฑํด์ฃผ๊ณ ์ฐ์ฐ
if(b%2 == 1) return tmp * a % c;
else return tmp;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
ll a,b,c;
cin >> a >> b >> c;
cout << func(a,b,c);
return 0;
}
/*
*/
์กฐ๊ธ.. ๋ง์ด ์ด๋ ค์ ๋คใ ใ
์ฌ๊ท ํจ์๋ ์ผ๋จ ์ง๊ด์ ์ผ๋ก ๋ฉ๋ํ๊ธฐ๊ฐ ํ๋ค์ด์..
๊ณต๋ถ ๋ง์ด ํด์ผํ ๊ฒ ๊ฐ๋ค
'๐ Baaaaaarking > 0x0B๊ฐ - ์ฌ๊ท' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S1] ๋ฐฑ์ค 1992๋ฒ: ์ฟผ๋ํธ๋ฆฌ (83%) (0) | 2022.05.22 |
---|---|
[BOJ S3] 2603๋ฒ: ์์ข ์ด ๋ง๋ค๊ธฐ (0) | 2022.05.22 |
[BOJ S2][C++] ๋ฐฑ์ค 1780๋ฒ : ์ข ์ด์ ๊ฐ์ (0) | 2022.05.19 |
[BOJ S5] ๋ฐฑ์ค 17478๋ฒ: ์ฌ๊ทํจ์๊ฐ ๋ญ๊ฐ์? (0) | 2022.05.17 |
[BOJ S1][C++] ๋ฐฑ์ค 11729๋ฒ: ํ๋ ธ์ด ํ ์ด๋ ์์ (0) | 2022.05.11 |