반응형
[ Contents ]
1. 문제 (링크 참조)
2501번: 약수 구하기
첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
www.acmicpc.net
2. 문제 풀이
N의 K번째 약수를 구하는 문제입니다.
2022.01.16 - [Algorithm] - [Algorithm] 브루트 포스(Brute Force)는 노가다 기법?
[Algorithm] 브루트 포스(Brute Force)는 노가다 기법?
[ Contents ] 1. 브루트 포스란? Brute(짐승 같은, 난폭한) + Force(힘, 폭력)의 합성어입니다. 무식하게 푸는 기법으로, '노가다'에 가까운 접근법입니다. 모든 경우의 수를 시험해보며 문제를 해결합니
star7sss.tistory.com
1부터 N까지 1씩 늘려가며, 약수가 맞는지 확인합니다.
3. 코드
N, K = map(int, input().split())
cnt = 0
for divide in range(1,N+1):
# 약수일 경우, cnt + 1
if N % divide == 0:
cnt += 1
# k번째 약수일 경우, 출력
if cnt == K:
print(divide)
break
# k번째 약수 없음
else:
print(0)
나머지가 0이면, N을 나눈 수는 N의 약수입니다. 1부터 N까지 1씩 늘려가며, 나눈 다음 나머지가 0인 약수를 찾습니다. count(cnt)가 k번째인 약수를 찾으면 출력합니다.
만약 없다면 0을 출력합니다. 파이썬에서는 for-else구문을 사용해서 쉽게 구현할 수 있습니다.
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 학점계산 - Python (0) | 2022.02.04 |
---|---|
[구현/수학] 백준 9375 패션왕 신해빈 - Python (0) | 2022.02.04 |
[구현/수학] 백준 2875 대회 or 인턴 - Python (0) | 2022.02.04 |
[구현/수학] 백준 1292 쉽게 푸는 문제 - Python (0) | 2022.02.04 |
[구현/수학] 백준 10156 과자 - Python (0) | 2022.02.04 |
댓글