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

N이 Python에서 Factorial Prime인지 확인하십시오.

<시간/>

숫자 n이 있다고 가정하면 n이 계승 소수인지 여부를 확인해야 합니다. 우리가 알고 있는 바와 같이 어떤 숫자의 계승보다 하나 작거나 하나 더 큰 소수인 경우 그 숫자를 계승 소수라고 합니다.

따라서 입력이 n =719와 같으면 출력은 719 =720 - 1 =6과 같이 True가 됩니다! - 1

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • num이 소수가 아니면
    • 거짓을 반환
  • 팩토리얼 :=1, i :=1
  • factorial <=num + 1인 동안 do
    • factorial :=계승 * i
    • num + 1이 계승과 같거나 num - 1이 계승과 같으면
      • 참 반환
    • 나는 :=나는 + 1
  • 거짓을 반환

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

from math import sqrt
def isPrime(num) :
   if num <= 1:
      return False
   if num <= 3 :
      return True
   if num % 2 == 0 or num % 3 == 0:
      return False
   for i in range(5, int(sqrt(num)) + 1, 6) :
      if num % i == 0 or num % (i + 2) == 0:
         return False
   return True
def solve(num) :
   if not isPrime(num) :
      return False
   factorial = 1
   i = 1
   while factorial <= num + 1:
      factorial *= i
      if num + 1 == factorial or num - 1 == factorial :
         return True
      i += 1
   return False
num = 719
print(solve(num))

입력

719

출력

True