Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 프라임 여부

<시간/>

소수는 암호화와 같은 많은 전자 응용 프로그램에서 중심 역할을 합니다. 따라서 다양한 애플리케이션에서 파이썬 프로그램을 사용하여 소수를 확인하는 것은 필수입니다. 소수는 1과 자기 자신 외에 다른 약수를 갖지 않는 수입니다. 다음은 주어진 숫자가 소수인지 아닌지를 알아낼 수 있는 프로그램입니다.

접근

숫자가 소수인지 여부를 결정하기 위해 다음과 같은 접근 방식을 취합니다.

  • 처음에 확인이 긍정적인지 아닌지. 양수만 소수가 될 수 있기 때문입니다.

  • 2의 범위에 있는 모든 숫자를 주어진 숫자보다 1 작은 숫자로 나눕니다.

  • 이 범위의 숫자에 대해 나머지가 0이 되면 소수가 아닙니다.

예시

x = 23
if x > 1:
   for n in range(2, x):
      if (x % n) == 0:
         print(x, "is not prime")
         print(n, "times", x // n, "is", x)
         break
   else:
      print(x, "is a prime number")
   else:
      print(x, "is not prime number")

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

23 is a prime number

6i+1 형식 확인

6보다 큰 모든 소수는 6i+1의 형태로 나타낼 수 있습니다. 여기에서 나는 1에서 시작하여 정수로 진행합니다. 아래 예에서는 6을 나누고 미리 알림을 1로 확인하여 숫자가 6i+1 형식으로 표시될 수 있는지 확인합니다. 따라서 숫자가 소수인지 여부를 결정합니다. 또한 주어진 숫자의 제곱근과 같은 i 값을 확인해야 합니다.

예시

def CheckPrime(n):
   # Check for cases of 2 and 3
   if (n <= 1):
      return False
   if (n <= 3):
      return True
   # skip checking middle five numbers in the loop
   if (n % 2 == 0 or n % 3 == 0):
      return False
   i = 5
   while (i * i <= n):
      if (n % i == 0 or n % (i + 2) == 0):
         return False
      i = i + 6
   return True
# Check for inputs
if (CheckPrime(31)):
   print(" true")
else:
   print(" false")
if (CheckPrime(25)):
   print(" true")
else:
   print(" false")

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

true
false