sm 기술 블로그

67. 1929(소수 구하기) 본문

문제/백준_파이썬

67. 1929(소수 구하기)

sm_hope 2022. 6. 4. 13:38
import math
M, N = map(int, input().split())

for i in range(M, N+1):
    if(i == 2 or i == 5):
        print(i)
        continue

    index = i % 10

    if((index == 1 or index == 3 or index == 7 or index == 9) and i != 1):
        is_prime = True
        R = int(math.sqrt(i))
        for j in range(2, R+1):
            if(i % j == 0):
                is_prime = False
                break

        if(is_prime):
            print(i)

시간제한이 있어 많이 생각해야 하는 문제.

 

소수에 대한 팁 :

1. 10이상 부터 소수는 일의자리가 1,3,7,9에만 분포되어 있다.

2. 값의 제곱근 이상의 수로는 나눌 수 없다.

3. 제곱근값 이내에서 1을 제외하고 한번이라도 나눠진다면 소수가 아니다.

 

 

소수 목록을 정리해놓은 사이트

https://ko.wikipedia.org/wiki/%EC%86%8C%EC%88%98_(%EC%88%98%EB%A1%A0) 

 

소수 (수론) - 위키백과, 우리 모두의 백과사전

각각의 자리에 놓인 숫자와 소수점을 통해 나타낸 실수(小數)에 대해서는 소수 (기수법) 문서를 참고하십시오. 좌측은 소수, 우측은 합성수. ...소수란 1보다 큰 자연수 중 1과 자기 자신만을 약수

ko.wikipedia.org

 

'문제 > 백준_파이썬' 카테고리의 다른 글

69. 9020(골드바흐의 추측)  (0) 2022.06.05
68. 4948 (베르트랑 공준)  (0) 2022.06.04
66. 11653(소인수분해)  (0) 2022.06.04
65. 소수(2581)  (0) 2022.06.03
64. 1978(소수 찾기)  (0) 2022.06.02
Comments