본문 바로가기
알고리즘/백준 - 파이썬

백준) 1929번 소수 구하기 문제 (파이썬)

by AI Sonny 2022. 7. 19.
728x90

문제) M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.

 

a, b = map(int,input().split())

for i in range(a, b+1):
    if i == 1:          # 1은 소수가 아니므로 제외
        continue
    for j in range(2,int(i**0.5)+1):  # i**0.5는 제곱근을 의미
        if i % j == 0:  # 약수가 존재하므로 소수가 아님
            break       # 더이상 검사할 필요가 없으므로 멈춤
    else:
        print(i)

이번 문제는 a, b를 입력하고, 반복문을 통해 a 부터 b+1까지 반복한다.

 

1은 소수가 아니므로 continue를 써 통과하도록 하였다.

 

두번째 반복문은 소수에 대한 정의가 나온다.

 

2부터 i의 제곱근까지 나눠떨어지는 숫자는 소수가 아니다.

 

이것을 이용하여 소수를 구하는 코딩을 하였다.

 

이해가 안되시거나 틀린 정보는 댓글로 알려주시면 감사하겠습니다!

728x90

댓글