728x90
문제
양의 정수 B와 N이 주어졌을 때, B에 가장 가까운 AN의 정수 A를 찾는 프로그램을 작성하시오. AN은 B보다 작거나, 크거나, 같다.
https://www.acmicpc.net/problem/4619
입력
입력은 여러 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있고, B와 N이 주어진다.
(1 ≤ B ≤ 1,000,000, 1 ≤ N ≤ 9) 입력의 마지막 줄에는 0이 2개 주어진다.
출력
각 테스트 케이스에 해당하는 A를 출력한다.
예제
# input
4 3
5 3
27 3
750 5
1000 5
2000 5
3000 5
1000000 5
0 0
# output
1
2
3
4
4
4
5
16
문제 풀이
import sys
input = sys.stdin.readline
while True:
B, N = map(int, input().split())
if B == N == 0:
break
R = int(pow(B, 1/N))
if abs(B-pow(R,N)) <= abs(B-pow(R+1,N)):
print(R)
else:
print(R+1)
파이썬을 독학하시는 분들에게 도움이 되길 바라며,
혹 더 좋은 방법이 있거나 오류가 있다면 편하게 말씀 부탁드립니다.
728x90