본문 바로가기
파이썬 수학

[파이썬 수학] 소수(prime number) 리스트 만들기

by 데이터 큐레이터 2019. 8. 6.

지난 번에 소수 판별 함수를 작성해 본 적이 있습니다. 어떤 자연수 N이 소수이면 True값을, 소수가 아니면 False값을
return하는 함수입니다.

 

2019/08/05 - [파이썬 + 수학] - [파이썬 수학] 소수(prime number) 판별

 

 

이번에는 지난 번에 만든 판별 함수를 호출하여, 어떤 자연수 N보다 작은 소수들로 이루어지는 리스트를 return하는 함수를 만들어 보겠습니다. 

 

 

def prime_number(number):   # number를 입력 받아 소수인지 아닌지 구분하는 함수
     # number가 1이 아니면, (1은 소수가 아님)
    if number != 1:                 
        # 2, 3, 4, ..., (number - 1)까지의 인수에 대해서
        for f in range(2, number):  
            # number가 위의 인수 중의 하나로 나누어지면, (나머지가 0이면)
            if number % f == 0:     
                return False    # 소수가 아님
    else:                       # number가 1이라면, 
        return False            # 소수가 아님
    
    # number가 1이 아니면서, 2부터 (number - 1)까지의 수로 나눠지지 않으므로
    # 소수로 판별됨 (소수는 1과 자신만을 인수로 갖는 수)
    return True                 

   
input_integer = int(input("자연수 N을 입력해 주세요: "))
integer_list = (x for x in range(2, input_integer + 1))
prime_numbers = []
for num in integer_list:
    if prime_number(num):
        prime_numbers.append(num)

print(prime_numbers)

 

 

프로그램을 실행하고, 키보드를 통해 자연수 27을 입력하면 다음과 같이 소수들로 이루어지는 리스트를 반환합니다. 

 

자연수 N을 입력해 주세요: 27
[2, 3, 5, 7, 11, 13, 17, 19, 23]

댓글