Un número de Proth , llamado así por François Proth, es un número que se puede expresar como
N = k * 2^n + 1
Donde k
es un entero positivo impar y n
es un entero positivo tal que 2^n > k
. Usemos un ejemplo más concreto. Tome 3. 3 es un número de Proth porque se puede escribir como
(1 * 2^1) + 1
y 2^1 > 1
está satisfecho 5 También es un número de Proth porque se puede escribir como
(1 * 2^2) + 1
y 2^2 > 1
está satisfecho Sin embargo, 7 no es un número de Proth porque la única forma de escribirlo en el formulario N = k * 2^n + 1
es
(3 * 2^1) + 1
y 2^1 > 3
no está satisfecho
Su desafío es bastante simple: debe escribir un programa o función que, dado un entero positivo, determine si es un número de Proth o no. Puede ingresar datos en cualquier formato razonable, y debería generar un valor verdadero si es un número de Proth y un valor falso si no lo es. Si su idioma tiene funciones de "Detección de número de prototipo", puede usarlas.
Prueba IO
Aquí están los primeros 46 números de Proth hasta 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
Cualquier otra entrada válida debe dar un valor falso.
Como de costumbre, este es el código golf, por lo que se aplican las lagunas estándar, ¡y gana la respuesta más corta en bytes!
Nota al margen de la teoría de los números:
El primo más grande conocido que no es un Mersenne Prime es 19249 * 2^13018586 + 1
, ¡que también es un número Proth!