파이썬에서 숫자가 소수인지 확인

Vaibhhav Khetarpal 2023년10월10일
  1. 단순 반복 방법을 사용하여 Python에서 소수 결정
  2. sympy.isprime()함수를 사용하여 주어진 숫자가 Python에서 소수인지 확인
파이썬에서 숫자가 소수인지 확인

소수는 숫자 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 Khetarpal avatar Vaibhhav Khetarpal avatar

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