파이썬에서 숫자가 소수인지 확인
소수는 숫자 1과 그 자체를 제외하고 다른 양의 제수가없는 자연수로 묘사 될 수 있습니다. 숫자 1은 소수 목록에 포함되지 않습니다.
이 튜토리얼에서는 숫자가 소수인지 확인하는 데 사용할 수있는 다양한 방법에 대해 설명합니다.
단순 반복 방법을 사용하여 Python에서 소수 결정
이 방법에서는for
또는while
루프를 사용하는 간단한 반복 방법을 사용합니다. 2에서 시작하여K/2
까지 올라가는 숫자를 반복하고이 숫자 중K
를 나누는 것이 있는지 확인합니다.
이 기준과 일치하는 숫자가 발견되면False
가 리턴됩니다. 반면에 모든 숫자가이 기준과 일치하지 않으면 주어진 숫자K
가 소수이고True
값이 반환됩니다.
다음 코드는 간단한 반복 방법을 사용하여 주어진 숫자가 Python에서 소수인지 확인합니다.
k = 13
# 1 not being a prime number, is ignored
if k > 1:
for i in range(2, int(k / 2) + 1):
if (k % i) == 0:
print("It is not a prime number")
break
else:
print("It is a prime number")
else:
print("It is not a prime number")
출력:
It is a prime number
일부 변경 사항을 적용하여 위의 코드를 최적화 할 수 있습니다. 코드를 더 빠르게 만들려면 다음 최적화를 수행하십시오.
-
정확한 숫자를 확인하는 대신 주어진 숫자의 루트에 도달 할 때까지 확인하십시오. 이 프로세스는 기본적으로 숫자
K
의 더 큰 요소가 이미 반복 된 더 작은 요소의 배수 일 때 발생하는 중복성을 제거합니다. -
모든 소수는 6n ± 1의 형태로 존재하며 2와 3이 유일한 예외입니다. 따라서 주어진 숫자의 나눗셈을 2와 3으로 확인한 다음 6n ± 1 형식의 모든 숫자를 확인하는 것이 더 효율적인 솔루션입니다.
다음 코드는 최적화 된 단순 반복 방법을 사용하여 주어진 숫자가 Python에서 소수인지 확인합니다.
def isitPrime(k):
if k == 2 or k == 3:
return True
if k % 2 == 0 or k < 2:
return False
for i in range(3, int(k ** 0.5) + 1, 2):
if k % i == 0:
return False
return True
print(isitPrime(13))
출력:
True
최적화 된 반복 방법은 단순 반복 방법보다 약 30 % 더 빠르고 효율적입니다.
sympy.isprime()
함수를 사용하여 주어진 숫자가 Python에서 소수인지 확인
SymPy
는 기호 수학을 구현하는 데 사용되는 Python 라이브러리입니다. 모든 필수 기능을 포함하는 단순한 컴퓨터 대수 시스템 (CAS)을 목표로합니다. 이 방법을 사용하려면이 모듈의 설치가 필요하며 단순히pip
명령을 사용하여 다운로드 할 수 있습니다.
sympy.isprime()
은SymPy
모듈 아래에 내장 된 함수이며 가능한 소수를 확인하는 데 사용할 수 있습니다. 직접 함수이며 확인할 숫자가 소수이면True
를, 소수가 아니면False
를 반환합니다.
다음 코드는sympy.isprime()
함수를 사용하여 주어진 숫자가 Python에서 소수인지 확인합니다.
from sympy import *
isprime(8)
isprime(11)
출력:
False
True
음수는 소수 기준에 포함되지 않는다는 점에 유의해야합니다. 이러한 함수의 출력은 음수를 확인하면 달라질 수 있습니다.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn