21275번: 폰 호석만
만약 문제의 조건에 맞는 X, A, B가 유일하게 존재한다면, X를 십진법으로 표현한 수와 A와 B를 공백으로 나누어 출력하라. 만약 만족하는 경우가 2가지 이상이라면 "Multiple"을, 없다면 "Impossible"을
www.acmicpc.net
코드
a, b = input().split()
res = []
for i in range(2, 37):
for j in range(2, 37):
if i == j:
continue
try:
if int(a, i) == int(b, j):
res.append((int(a, i), i, j))
except:
pass
if len(res) < 1:
print("Impossible")
elif len(res) == 1:
print(*res[0])
else:
print("Multiple")
파이썬의 int 함수는 2번째 인자로 정수를 넣어주면 1번째 인자를 원하는 진법으로 변환도 가능하다. 예를 들어, print(int("ab", 12))는 131이 출력된다. 그래서 이 int 함수를 이용하여 a, b를 10진법으로 변환했을 때 같은 값을 갖게 되는 A와 B값을 찾으면 된다.
'문제풀이 > 수학' 카테고리의 다른 글
[Python/파이썬] 백준 4134번 다음 소수 (0) | 2024.04.17 |
---|---|
[Python/파이썬] 백준 2740번 행렬 곱셈 (0) | 2024.03.27 |
[Python/파이썬] 백준 19699번 소-난다! (0) | 2024.03.09 |
[Python/파이썬] 백준 1459번 걷기 (0) | 2024.03.08 |
[Python/파이썬] 백준 10610번 30 (0) | 2024.02.29 |