알고리즘/BOJ
[BOJ 4619, Python 3] 루트
70825
2021. 9. 3. 16:35
반응형
https://www.acmicpc.net/problem/4619
4619번: 루트
입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, B와 N이 주어진다. (1 ≤ B ≤ 1,000,000, 1 ≤ N ≤ 9) 입력의 마지막 줄에는 0이 2개 주어진다.
www.acmicpc.net
풀이
B의 값도 작고, N의 값도 작아서 바로 브루트포스를 생각할 수 있습니다.
계산을 더 빠르게 하기 위하여 N = 1일 때는 B = A가 성립하므로 이 경우를 제외하고, N = 2일 때 B = 1,000,000인 경우는 A = 1,000이므로 N = 2이상부터는 1부터 1,000까지 브루트 포스를 통하여 확인해주시면 됩니다.
코드
1
2
3
4
5
6
7
8
9
|
while 1:
b, n = map(int, input().split())
if b == n == 0: break
if n == 1: print(b); continue
ans = [-1, 1e9]
for i in range(1, 1001):
if ans[1] > abs(b - i ** n):
ans = [i, abs(b - i ** n)]
print(ans[0])
|
cs |
반응형