숫자 n이 있다고 가정하면 n의 모든 회전이 소수인지 여부를 확인해야 합니다.
따라서 입력이 n =13과 같으면 13이 소수이고 31도 소수이므로 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- n :=n을 문자열로
- n번의 크기에 대해 루프를 수행합니다.
- n이 소수가 아니면
- 거짓을 반환
- n :=n[인덱스 1부터 끝까지] n의 첫 번째 문자 연결
- n이 소수가 아니면
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
class Solution: def solve(self, n): def is_prime(n): if n<=1: return False return not any(n%2==0 or n%i==0 for i in range(3,int(n**0.5)+1,2)) n = str(n) for _ in range(len(n)): if not is_prime(int(n)): return False n = n[1:] + n[0] return True ob = Solution() print(ob.solve(13))
입력
13
출력
True