세 개의 숫자가 있고 인접한 소수가 아닌지 확인해야 한다고 가정합니다. 인접한 소수는 그들 사이에 다른 소수가 존재하지 않는 소수입니다.
따라서 입력이 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