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

Vaibhhav Khetarpal 2023년10월10일 Python
  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

음수는 소수 기준에 포함되지 않는다는 점에 유의해야합니다. 이러한 함수의 출력은 음수를 확인하면 달라질 수 있습니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
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