Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 두 숫자가 쿠진 소수(Cousin Prime)인지 확인하는 방법

두 개의 정수 쌍이 주어졌을 때, 이 숫자들이 쿠진 소수(Cousin Prime)인지 판별해야 하는 경우가 있습니다. 쿠진 소수란 두 수가 모두 소수(prime)이면서, 그 차이가 정확히 4인 경우를 말합니다.

예를 들어 입력이 pair = (19, 23)이라면, 19와 23은 각각 소수이고 그 차이가 4이므로 출력 결과는 True가 됩니다.

문제 해결 접근 방법

이 문제는 다음 단계를 따라 해결할 수 있습니다.

  • 두 숫자의 차이가 4가 아니라면 False를 반환합니다.
  • 차이가 4라면, 두 숫자가 모두 소수일 때 True, 하나라도 소수가 아니면 False를 반환합니다.

예제 코드

def isPrime(num):
    if num > 1:
        for i in range(2, num):
            if num % i == 0:
                return False
        return True
    return False

def solve(pair):
    if not abs(pair[0] - pair[1]) == 4:
        return False
    return isPrime(pair[0]) and isPrime(pair[1])

pair = (19, 23)
print(solve(pair))

입력

(19, 23)

출력

True

코드 설명

isPrime() 함수는 전달받은 숫자가 소수인지 검사합니다. 2부터 해당 숫자 미만까지 반복하면서 나누어 떨어지는 수가 있으면 소수가 아니므로 False를 반환하고, 끝까지 나누어 떨어지는 수가 없다면 True를 반환합니다.

solve() 함수는 먼저 abs()를 사용해 두 숫자의 차이 절댓값이 4인지 확인한 뒤, 조건을 만족하면 두 숫자 모두에 대해 소수 여부를 검사하여 최종 결과를 반환합니다.

참고로 이 코드는 효율성을 높이기 위해 소수 검사 범위를 √num까지만 확인하도록 최적화할 수도 있습니다. 예를 들어 range(2, int(num**0.5) + 1)로 반복 범위를 줄이면 큰 숫자에서도 더 빠르게 동작합니다.