알고리즘/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 == 1print(b); continue
    ans = [-11e9]
    for i in range(11001):
        if ans[1> abs(b - i ** n):
            ans = [i, abs(b - i ** n)]
    print(ans[0])
cs
반응형