Dado un semiprime N , encuentre el número entero positivo más pequeño m tal que la representación binaria de uno de los dos factores de N se pueda encontrar en la representación binaria de N * m .
Ejemplo
Consideremos el semiprime N = 9799 .
Intentamos diferentes valores de m , comenzando en 1:
m | N * m | N * m in binary
---+--------+------------------
1 | 9799 | 10011001000111
2 | 19598 | 100110010001110
3 | 29397 | 111001011010101
4 | 39196 | 1001100100011100
5 | 48995 | 1011111101100011
6 | 58794 | 1110010110101010
7 | 68593 | 10000101111110001
8 | 78392 | 10011001000111000
9 | 88191 | 10101100001111111
10 | 97990 | 10111111011000110
11 | 107789 | 11010010100001101
Nos detenemos aquí porque la representación binaria del último producto contiene 101001
cuál es la representación binaria de 41 , uno de los dos factores de 9799 (el otro es 239 ).
Entonces la respuesta sería 11 .
Reglas y notas
- Intentar incluso valores de m no tiene sentido. Se mostraron en el ejemplo anterior en aras de la integridad.
- Su programa debe admitir cualquier N para el que N * m esté dentro de las capacidades informáticas de su idioma.
- Se le permite factorizar N antemano en lugar de tratar cada posible subcadena de la representación binaria de N * m para ver si resulta ser un factor de N .
- Como lo demuestra MitchellSpector , m siempre existe.
- Este es el código de golf, por lo que gana la respuesta más corta en bytes. Las lagunas estándar están prohibidas.
Casos de prueba
La primera columna es la entrada. La segunda columna es la salida esperada.
N | m | N * m | N * m in binary | Factor
-----------+------+---------------+----------------------------------------------+-------
9 | 3 | 27 | [11]011 | 3
15 | 1 | 15 | [11]11 | 3
49 | 5 | 245 | [111]10101 | 7
91 | 1 | 91 | 10[1101]1 | 13
961 | 17 | 16337 | [11111]111010001 | 31
1829 | 5 | 9145 | 1000[111011]1001 | 59
9799 | 11 | 107789 | 1[101001]0100001101 | 41
19951 | 41 | 817991 | 1[1000111]101101000111 | 71
120797 | 27 | 3261519 | 11000[1110001]0001001111 | 113
1720861 | 121 | 208224181 | 11000110100[100111111101]10101 | 2557
444309323 | 743 | 330121826989 | 100110011011100110010[1101010010101011]01 | 54443
840000701 | 4515 | 3792603165015 | 11011100110000[1000110000111011]000101010111 | 35899
1468255967 | 55 | 80754078185 | 1001011001101010100010[1110001111]01001 | 911