์ํํฐ์ด | ์ํผ๋ฐ์ด๋ฌ์ค โญโญโญ- PYTHON
๋ฌธ์
https://softeer.ai/practice/6292
์๊ณ ๋ฆฌ์ฆ
๋ฌธ์ ๋ง ๋ณด๋ฉด ๋จ์ํ๊ฒ (K * P)*10N ์ ํ๋ฉด ๋ ๋ฌธ์ ์์ง๋ง, ์ํผ๋ฐ์ด๋ฌ์ค๋ ์ผ๋ฐ ๋ฐ์ด๋ฌ์ค์ ๋นํด์ ํจ์ฌ ์ค๋ ์์กดํ ์ ์๊ธฐ ๋๋ฌธ์ N์ด ๋งค์ฐ ํด ์ ์๋ค.๋ผ๋ ๋ด์ฉ์ด ์๊ธฐ์ ์๊ฐ์ ๋ ์ค์ผ ์ ์๋ ์ฌ๊ท๋ฅผ ์๊ฐํด ๋ณด์๋ค.
๋ด ํ์ด
import sys
input = sys.stdin.readline
def value(x, y): # ์ฆ๊ฐ์จ, ์ด ์๊ฐ
# ์ด ์๊ฐ์ด 1์ด๋ผ๋ฉด x(์ฆ๊ฐ์จ) ๋ฆฌํด
if y == 1:
return x
# ์ด ์๊ฐ์ด ์ง์
elif y % 2 == 0:
a = f(x, y / 2)
# f(2,4) = f(2,2) * f(2,2)
return a * a % 1000000007
# ์ด ์๊ฐ์ด ํ์
else:
b = f(x, (y - 1) / 2)
# f(2,5) = f(2,2) * f(2,2) * 2
return b * b * x % 1000000007
K, P, N = map(int, input().split()) # ๋ฐ์ด๋ฌ์ค ์, ์ฆ๊ฐ์จ, ์ด์๊ฐ
N = 10 * N
result = value(P, N)
result *= K
print(result % 1000000007)
'๐ป Coding > [Algorithm]Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ํํฐ์ด | ๊ฐ์์ค ๋ฐฐ์ โญโญโญ - PYTHON (0) | 2024.03.20 |
---|---|
BOJ | 2667_๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ - PYTHON (0) | 2024.03.20 |
์ด์ฝํ | ๋ณผ๋ง๊ณต ๊ณ ๋ฅด๊ธฐ (0) | 2024.01.31 |
์ํํฐ์ด | ๋ฐ์ด๋ฌ์ค (0) | 2024.01.24 |
์ํํฐ์ด | ๊ธ๊ณ ํธ์ด (0) | 2024.01.23 |