[백준 2960] 에라토스테네스의 체_Python

코뉴·2021년 1월 28일
0

백준🍳

목록 보기
17/149

https://www.acmicpc.net/problem/2960

🥚문제


🥚입력/출력


🍳코드

# 에라토스테네스의 체
n, k = map(int, input().split())
# 2부터 n 까지의 정수
nums = [i for i in range(2, n+1)]
count = 0 # 몇 번 째로 지워지는 수인지 체크
# 모든 수가 지워질 때 까지 반복
while len(nums) > 0:
    # 지우지 않은 수 중 가장 작은 수를 p라고 한다
    p = min(nums)
    # p를 지우고, 아직 지우지 않은 p의 배수를 크기 순서대로 지운다.
    nums.remove(p)
    count += 1 # 카운트 증가
    # 카운트가 k에 도달하면 p 출력하고 중단
    if count == k:
        print(p)
        break
    nums_copy = nums.copy()
    for num in nums_copy:
        if num % p == 0:
            nums.remove(num)
            count += 1  # 카운트 증가
            # 카운트가 k에 도달하면 출력하고 중단
            if count == k:
                print(num)
                break


🧂아이디어

  • 간단한 구현 문제
profile
코뉴의 도딩기록

0개의 댓글