이호진

숫자 두 개를 입력 받아 그 사이의 소수를 출력하는 코드 (2021/02/17) 본문

기본적인 알고리즘

숫자 두 개를 입력 받아 그 사이의 소수를 출력하는 코드 (2021/02/17)

이호진 2021. 2. 17. 17:49

1,000,000 이하의 숫자 두 개를 입력받아 그 사이의 소수를 구하는 알고리즘입니다.

 

1. m, n을 입력받는다. map(int(input().split()) 이용

2. array의 크기를 1,000,000으로 만들고 True로 초기화 한다.

3. 1은 소수가 아니다. array[1]=False

4. 에라토스테네스의 채를 이용하여 소수를 구한다.

5. 구한 값을 m부터 n+1까지 모두 출력한다.

 

예를 들어, m=3 n=16일 때,

import math
m,n = map(int,input().split())
3 16
array=[True for i in range(1000001)]
array[1]=False
for i in range(2,int(math.sqrt(n))+1):
    if array[i]==True:
        j=2
        while i*j<=n:
            array[i*j]=False
            j+=1
for i in range(m,n+1):
    if array[i]:
        print(i)
   
결과
   
3
5
7
11
13