에서 이 문제 우리는 계수 나무를 사용하여 정수 모든 양을 인코딩하는 방법을 배웠습니다.
작동 방식은 다음과 같습니다.
빈 문자열의 값은 1입니다.
(S)
여기서 SS
값을 가진 표현식 은 S 번째 소수로 평가됩니다 .AB
whereA
및B
are A 및 B 값을 가진 arbirary 표현식은 각각 A * B 값을 갖습니다 .
예를 들어 7을 나타내려면
7 -> (4) -> (2*2) -> ((1)(1)) -> (()())
이 방법을 사용하여 모든 정수를 나타낼 수 있습니다. 실제로 일부 숫자는 여러 가지 방법으로 나타낼 수 있습니다. 곱셈은 commutative이기 때문에 10은
((()))()
과
()((()))
동시에 일부 숫자는 한 가지 방식으로 만 표현할 수 있습니다. 예를 들어 8을 사용하십시오. 8은 다음과 같이 나타낼 수 있습니다.
()()()
그리고 우리의 모든 원자가 동일하기 때문에 우리는 그것을 재구성하기 위해 공통성을 사용할 수 없습니다.
이제 질문은 "어떤 숫자는 한 가지 방식으로 만 표현 될 수 있습니까?"입니다. 첫 번째 관찰은 방금 다시 시작한 것입니다. 완벽한 힘에는 특별한 특성이있는 것 같습니다. 추가 조사를 통해 36을 찾을 수 있는데, 이는 6 2 가 완벽한 힘이지만 여러 표현이 있습니다.
(())()(())()
(())()()(())
()(())()(())
()(())(())()
()()(())(())
6은 이미 재배치 가능하므로 6 개 중 어떤 숫자도 재배치 할 수 있어야합니다.
이제 규칙이 있습니다.
- 고유 한 표현을 가진 숫자의 완벽한 거듭 제곱 인 경우 숫자는 고유 한 표현을 갖습니다.
이 규칙을 사용하면 소수가 고유한지 여부를 결정하는 데 복합 수가 고유한지 여부를 줄이는 데 도움이 될 수 있습니다. 이제 우리는 그 규칙을 갖기 때문에 소수 를 독특하게 만드는 것을 알아 내고 싶습니다 . 이것은 실제로 꽤 자명하다. 고유 한 숫자를 사용하여 괄호로 묶으면 결과는 고유해야하며, n 이 여러 개의 표현을 갖는 경우 다른 방법으로 n 번째 소수는 여러 개의 표현을 가져야합니다. 이것은 두 번째 규칙을 산출합니다.
- N 번째 프라임과 경우에만 경우 고유 n이 유일하다.
이 두 규칙 모두 재귀 적이므로 기본 사례가 필요합니다. 가장 작은 고유 번호는 무엇입니까? ()
빈 문자열 인 just 이지만 1은 더 작고 독특 하기 때문에 2라고 말하고 싶을 수도 있습니다 .
- 1은 독특합니다.
이 세 가지 규칙을 사용하여 숫자에 고유 요인 트리가 있는지 확인할 수 있습니다.
태스크
당신은 그것이 오는 것을 보았을 지 모르지만, 당신의 임무는 양의 정수를 취하고 그것이 고유한지를 결정하는 것입니다. 이 계산을 수행하는 프로그램이나 함수를 작성해야합니다. 두 가지 가능한 값 중 하나를 출력해야합니다.이 값은 사용자에게 달려 있지만 하나는 "예"를 나타내야하며, 입력이 고유 할 때는 출력되고 다른 하나는 "아니오"를 나타내야합니다.
적은 바이트를 사용하는 것이 좋습니다.
테스트 사례
다음은 첫 커플 고유 번호입니다.
1
2
3
4
5
7
8
9
11
16
17
19
23
25
27
31
제안 된 테스트 사례
5381 -> Unique
OEIS A214577 은 어떻게 든 관련 이있는 것 같습니다. 더 많은 테스트 사례가 필요한 경우 시도해보십시오. 그러나 동일한 지 모르겠으므로 자신의 위험 부담으로 사용하십시오.