숫자 n이 있다고 가정합니다. n이 Emirp 수인지 아닌지 확인해야 합니다. 우리 모두는 Emirp 숫자가 (역방향으로 소수의 글자) 소수라는 것을 알고 있습니다. 소수는 그 숫자가 반전될 때 다른 소수가 되는 결과를 낳습니다.
따라서 입력이 n =97과 같으면 97의 반대가 또 다른 소수인 79이므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- num이 소수가 아니면
- 거짓을 반환
- reverse_num :=num의 역순
- reverse_num이 소수이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def is_prime(num): if num <= 1: return False for i in range(2, num): if num % i == 0: return False return True def solve(num): if not is_prime(num): return False reverse_num = 0 while num != 0: d = num % 10 reverse_num = reverse_num * 10 + d num = int(num / 10) return is_prime(reverse_num) n = 97 print (solve(n))
입력
97
출력
True