본문 바로가기

알고리즘 문제풀이

백준 1418 K-세준수 Python 수학 소수 브루트포스

방법을 외울 때까지 일주일동안 외워서 쓰는 연습만 하다 결국 방법을 외울 수 있었던 문제

import sys

n = int(sys.stdin.readline())
k = int(sys.stdin.readline())

# 소수 구하기
prime_num = [1] * (n+1)
for i in range(2,int(n**(0.5))+1):
    if prime_num[i]:
        for j in range(2*i,n+1,i):
            prime_num[j] = 0
print(prime_num)
# k 세준수 구하기
k_num = [1] * (n+1)
for i in range(2,n+1):
    if prime_num[i] and i > k: # 소수 일 때
        for j in range(i,n+1,i):
            k_num[j] = 0
print(k_num)