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

주어진 세 숫자가 Python에서 인접한 소수인지 확인하십시오.

<시간/>

세 개의 숫자가 있고 인접한 소수가 아닌지 확인해야 한다고 가정합니다. 인접한 소수는 그들 사이에 다른 소수가 존재하지 않는 소수입니다.

따라서 입력이 nums =[5,7,11]과 같으면 출력은 True가 됩니다.

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

  • 이 세 숫자 중 하나라도 소수가 아닌 경우
    • 거짓을 반환
  • x의 다음 소수가 y와 같지 않으면
    • 거짓을 반환
  • y의 다음 소수가 z와 같지 않으면
    • 거짓을 반환
  • 참 반환

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

예시 코드

def isPrime(num):
   if num > 1:
      for i in range(2, num):
         if num % i == 0:
           return False
      return True
   return False
   
def get_next_prime(num) :
   next_prime = num + 1
   while not isPrime(next_prime):
      next_prime += 1
   return next_prime
 
def solve(x, y, z) :
   if isPrime(x) == False or isPrime(y) == False or isPrime(z) == False :
      return False
 
   next_prime = get_next_prime(x)
   if next_prime != y:
      return False
 
   if get_next_prime(y) != z:
      return False
 
   return True

nums = [5,7,11]
print(solve(*nums))

입력

[5,7,11]

출력

True