티스토리 뷰

A = int(input())
X = int(input())
arr = [A]
exp = 1
while True:
exp *= 2
if X < exp:
break
arr.append((arr[-1] ** 2) % 1000000007)
def decompose_bin(x):
result = []
power = 0
while x > 0:
if x % 2 == 1:
result.append(power)
x //= 2
power += 1
return result
def solution(A, X):
X_bin = decompose_bin(X)
ans = 1
for b in X_bin:
ans *= (arr[b])
return ans % 1000000007
print(solution(A, X))

A, B, C = map(int, input().split())
arr = [A]
exp = 1
while True:
exp *= 2
if B < exp:
break
arr.append((arr[-1] ** 2) % C)
def decompose_bin(x):
result = []
power = 0
while x > 0:
if x % 2 == 1:
result.append(power)
x //= 2
power += 1
return result
B_bin = decompose_bin(B)
ans = 1
for b in B_bin:
ans *= arr[b]
print(ans % C)
'Study > Baekjoon' 카테고리의 다른 글
[Python] 백준 11000번 강의실 배정, 1931번 회의실 배정 | 우선순위 큐 - 배정 (0) | 2024.05.30 |
---|---|
[Python] 백준 5639번 이진 검색 트리, 2263번 트리의 순회 | 트리 순회 변환 - 전위 순회(preorder), 중위 순회(inorder), 후위 순회(postorder) (0) | 2024.05.28 |
[Python] 백준 7785번 회사에 있는 사람 | set() (1) | 2024.02.12 |
[Python] 백준 1009번 분산처리 | 런타임에러(KeyError) (0) | 2023.08.05 |
[Python] 백준 10989번 수 정렬하기 3 | 카운팅 정렬 (0) | 2023.07.27 |