Proth 번호 프랑수아 프로스 따서는 다음과 같이 표현 될 수있는 수이며
N = k * 2^n + 1
k
홀수 양의 정수는 어디에 있고 다음과 n
같은 양의 정수는 어디에 있습니까 2^n > k
? 좀 더 구체적인 예를 사용합시다. 3은 3으로 쓸 수 있기 때문에 Proth 번호입니다.
(1 * 2^1) + 1
그리고 2^1 > 1
만족된다. 5 또한 다음과 같이 쓸 수 있기 때문에 Proth 번호입니다
(1 * 2^2) + 1
그리고 2^2 > 1
만족된다. 그러나 7은 하지 형태를 쓸 수있는 유일한 방법이 있기 때문에 Proth 번호 N = k * 2^n + 1
입니다
(3 * 2^1) + 1
그리고 2^1 > 3
만족하지 않습니다.
당신의 도전은 매우 간단합니다 : 당신은 postive integer가 주어지면 그것이 Proth 수인지 아닌지를 결정하는 프로그램이나 함수를 작성해야합니다. 합리적인 형식으로 입력을받을 수 있으며, Proth 번호 인 경우 정확한 값을, 그렇지 않은 경우 잘못된 값을 출력해야합니다. 언어에 "Proth-number detection"기능이있는 경우 사용할 수 있습니다.
IO 테스트
다음은 1000까지의 첫번째 46 Proth 수입니다. ( A080075 )
3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241, 257, 289, 321, 353, 385, 417, 449, 481, 513, 545, 577, 609, 641, 673, 705, 737, 769, 801, 833, 865, 897, 929, 961, 993
다른 모든 유효한 입력은 잘못된 값을 제공해야합니다.
평소와 같이 이것은 코드 골프이므로 표준 허점이 적용되며 바이트 단위의 최단 답변이 이깁니다!
숫자 이론의 재미있는 사실 참고 사항 :
메르 센 프라임 이 아닌 가장 큰 알려진 프라임 19249 * 2^13018586 + 1
은 Proth 번호이기도합니다!