소수는 1과 자기자신 만으로 나눌 수 있는 수이다. 그리고 1보다 커야 한다.


어떤 숫자가 소수인지 아는 방법은 어렵지 않다. 하지만, 많은 숫자 중에 소수를 선별하는 작업은 약간의 코딩 지식이 있어야 한다.


오늘은 파이썬 소수 구하기 만드는 방법에 대해서 알아보겠다.

 

 

파이썬 소수 구하기

 

 

1. 숫자 하나가 소수인지 알아보기

코딩할 때는 문제를 하나씩 쪼개서 해결하는 것이 쉽다. 우선 하나의 숫자가 소수인지 확인하는 방법을 작성해보자.

1과 자기자신 만으로 나눌 수 있다는 것은 나머지가 없다는 말이다. 파이썬에서 나머지를 구할 때는 연산기로 %를 쓴다.

하지만 1은 모든 자연수를 나눴을 때, 나머지가 0이므로 의미가 없다. 그리고 자기자신으로 나눴을 때도 모두 나머지가 0이므로 계산하는 게 의미가 없다.


결국 2부터 자기자신에서 1을 뺀 숫자까지로 나눴을 때, 나머지가 모두 0이면 된다. 그래서 하나라도 나머지가 0이 아니라면 그 수는 소수가 아니다.


이를 파이썬 코드로 작성하면 아래와 같다. 소수인지 판단하고 싶은 숫자는 변수 inp에 넣는다.

 

 

for i in range(2,inp):
	if inp % i != 0:
		pass
	else:
		print('소수가 아닙니다')
		breadk

print('소수입니다.')

 

 

2. 함수로 만들기

이를 함수로 작성하면 이해하기도 쉽고, 반복문을 이용해서 여러 수를 판단하기에도 좋다.


아래와 같이 함수로 작성해 보았다. 소수이면 1을 아니면, 0을 반환한다.

 

 

def is_sosu(inp):
    for i in range(2,inp):
        if inp % i != 0:
            pass
        else:
            return 0        

    return 1

 

 

3. 여러 수를 판단해 보기

이제 2부터 20까지 소수인지 확인해 보자. 반복문을 이용해서 2부터 20까지의 숫자를 위 함수에 넣어주면 된다.

 

 

for i in range(2,21):
	rlt = is_sosu(i)

	if rlt==1:
		print(f'{i}: 소수')



오늘은 이렇게 파이썬 소수 구하기 만드는 방법에 대해서 알아보았다. 조건문과 반복문을 알면, 이를 조합하여 만들 수 있다.


굳이 2부터 자기자신에서 1을 뺀 숫자까지 나눠야 할까 싶기도 하다. 이 숫자를 줄이면 더 효율적인 코드가 되겠다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기