[삼성 sw 파이썬] 3131. 100만 이하의 모든 소수
문제
1 이상 100만 이하의 도든 소수를 구하는 프로그램을 작성하시오.
출력
1 이상 100만 이하의 소수를 공백을 사이에 두고 한 줄에 모두 출력한다.
풀이
1부터 100만 이하의 수를 하나하나씩 소수인지 판별하도록 코드를 작성하면 시간 초과가 나는 문제이다.
그렇기에 소수가 나오면 그 소수의 모든 배수를 배제하는 형식으로 코드를 작성하였다.
소수가 나올 경우 기록하기 위해서 100만까지 값이 0인 리스트를 만들었고
만약 이 리스트의 값이 0 이면 소수 임으로 이 값의 모든 배수를 1로 바꾸면서 제외하여 100만까지의 수를 판별하도록 만들었다.
코드
ans=[0]*1000001
for i in range(2,1000001):
if ans[i]==0:
for j in range(i,1000001,i):
ans[j]=1
print(i,end=" ")
반응형
'파이썬 문제풀이 > 구현' 카테고리의 다른 글
[삼성 sw 파이썬] 4371 항구에 들어오는 배 (1) | 2024.10.02 |
---|---|
[삼성 sw 파이썬] 1945 간단한 소인수분해 (1) | 2024.09.08 |
[삼성 sw 파이썬] 19185 육십갑자 (0) | 2024.09.05 |
[삼성sw 파이썬] 15230 알파벳 공부 (0) | 2024.08.24 |
[삼성sw 2001 파이썬] 파리 퇴치 (0) | 2024.07.15 |