본문 바로가기
공부/알고리즘

[알고리즘][백준] 1929번 소수 구하기 - 파이썬(python) 풀이

by 무명오리 2024. 2. 28.

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

 

1929번: 소수 구하기

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

www.acmicpc.net


나의 코드

import sys

m, n = map(int, sys.stdin.readline().split())

while m <= n:
    for i in range(2, m+1):
        if i == m:
            print(i)
        elif m % i == 0:
            break
    m += 1

시간초과가 뜬다...

 

다른분들의 풀이를 참고하니 소수 검사는 2부터 i의 제곱근까지만 검사하면 끝난다고..!!

30 = 1*30 = 2*15 = 3*10 = 5*6 이런식으로 30**0.5 = 5.xxx 이라 그렇다고 합니다...

또 하나 배워갑니다...

import sys

m, n = map(int, sys.stdin.readline().split())

for i in range(m, n+1):
    if i == 1:
        continue
    for j in range(2, int(i**0.5)+1):
        if i % j == 0:
            break
    else:
        print(i)