[알고리즘] 1-1 K번째 약수

이성혁·2021년 4월 19일
1

알고리즘

목록 보기
1/12
post-thumbnail

🥉 N의 K번째 약수 출력하기

문제

  • N의 약수들 중 K번째로 작은 수를 출력하는 프로그램 작성

📌 문제분석

  • 문제를 살펴보면 N의 약수들 중 K번째로 작은 수를 출력하는 문제이다. N을 q로 나누었을 때 나머지가 0이 되면 q는 N의 약수라 한다.
  • 입력예제의 N이 6이라면 6의 약수는 1, 2, 3, 6 이다. 3번째로 작은 수 3을 출력한다.
출처 : https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8

🔑 KeyPoint!

  • 나머지 연산을 통해 나머지가 0인 경우 카운트 값을 증가시켜 K번째에 해당하는 약수를 출력하면 된다.

🔌 Code

# 두 자연수 입력
n, k = map(int, input().split())

# 카운트 초기화
cnt = 0

for i in range(1, n+1):

    # 약수 일 경우
    if n % i == 0:
        cnt += 1

    # k번째 해당하는 경우
    if cnt == k:
        print(i)
        break
else:
    print(-1)

https://github.com/seonghyeoklee/Algorithm-Python

📃 내용정리

  • for ~ else

    • for문에서 조건에 해당하지 않고 종료되었을 때 else문 실행한다. python에서 처음 사용해본 문법으로 사용법이 낯설었지만 익숙해진다면 매우 유용하게 사용될 듯 하다.
profile
항상 배우는 자세로 🪴

0개의 댓글