Một số Proth , được đặt tên theo François Proth, là một số có thể được biểu thị là
N = k * 2^n + 1
Trường hợp k
là một số nguyên dương lẻ và n
là một số nguyên dương sao cho 2^n > k
. Hãy sử dụng một ví dụ cụ thể hơn. Lấy 3. 3 là số Proth vì nó có thể được viết là
(1 * 2^1) + 1
và 2^1 > 1
hài lòng. 5 cũng là một số Proth vì nó có thể được viết là
(1 * 2^2) + 1
và 2^2 > 1
hài lòng. Tuy nhiên, 7 không phải là số Proth vì cách duy nhất để viết nó theo mẫu N = k * 2^n + 1
là
(3 * 2^1) + 1
và 2^1 > 3
không hài lòng.
Thử thách của bạn khá đơn giản: bạn phải viết một chương trình hoặc hàm, được đưa ra một số nguyên định nghĩa, xác định xem đó có phải là số Proth hay không. Bạn có thể lấy đầu vào ở bất kỳ định dạng hợp lý nào và nên xuất giá trị trung thực nếu đó là số Proth và giá trị giả nếu không. Nếu ngôn ngữ của bạn có bất kỳ chức năng "Phát hiện số Proth" nào, bạn có thể sử dụng chúng.
Kiểm tra IO
Dưới đây là 46 số Proth đầu tiên lên tới 1000. ( 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
Mỗi đầu vào hợp lệ khác sẽ cung cấp một giá trị giả.
Như thường lệ, đây là môn đánh gôn, do đó, sơ hở tiêu chuẩn được áp dụng và câu trả lời ngắn nhất bằng byte sẽ thắng!
Lý thuyết số vui-thực tế bên lưu ý:
Số nguyên tố lớn nhất được biết đến mà không phải là Mersenne Prime 19249 * 2^13018586 + 1
, điều này cũng xảy ra cũng là một số Proth!