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

Python에서 N이 Strong Prime인지 확인

<시간/>

숫자 n이 있다고 가정합니다. n이 강한 소수인지 아닌지 확인해야 합니다. 우리가 알고 있듯이 가장 가까운 소수의 평균보다 큰 소수일 때 강한 소수라고 합니다.

따라서 입력이 num =37과 같으면 가장 가까운 소수는 31과 41이고 평균은 (31+41)/2 =36이므로 출력은 True가 됩니다. 그리고 37> 36입니다.

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

  • num이 소수가 아니거나 2이면
    • 거짓을 반환
  • 마지막 :=숫자 - 1, 다음 :=숫자 + 1
  • next가 소수가 아닌 동안 do
    • 다음 :=다음 + 1
  • last가 소수가 아닌 동안 do
    • 마지막 :=마지막 - 1
  • 평균 :=(마지막 + 다음) / 2
  • 숫자> 평균이면
    • 참 반환
  • 거짓을 반환

예시

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

def isPrime(num):
   if num > 1:
      for i in range(2,num):
         if num % i == 0:
            return False
      return True
   return False
def solve(num):
   if isPrime(num) == False or num == 2:
      return False
   last = num - 1
   next = num + 1
   while isPrime(next) == False:
      next += 1
   while isPrime(last) == False:
      last -= 1
   avg = (last + next) / 2
   if num > avg:
      return True
   return False
num = 37
print(solve(num))

입력

37

출력

True