Cho một bán cầu N , tìm số nguyên dương m nhỏ nhất sao cho biểu diễn nhị phân của một trong hai yếu tố của N có thể được tìm thấy trong biểu diễn nhị phân của N * m .
Thí dụ
Hãy xem xét bán kết N = 9799 .
Chúng tôi thử các giá trị khác nhau của m , bắt đầu từ 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
Chúng tôi dừng lại ở đây bởi vì đại diện nhị phân của sản phẩm cuối cùng chứa 101001
đại diện nhị phân của 41 , một trong hai yếu tố của 9799 (một yếu tố khác là 239 ).
Vì vậy, câu trả lời sẽ là 11 .
Quy tắc và ghi chú
- Cố gắng thậm chí giá trị của m là vô nghĩa. Chúng được thể hiện trong ví dụ trên với mục đích hoàn thiện.
- Chương trình của bạn phải hỗ trợ bất kỳ N nào mà N * m nằm trong khả năng tính toán của ngôn ngữ của bạn.
- Bạn được phép factorize N trước chứ không phải là cố gắng mỗi chuỗi có thể có của các đại diện nhị phân của N * m để xem nếu nó hóa ra là một yếu tố của N .
- Theo chứng minh của MitchellSpector , m luôn tồn tại.
- Đây là môn đánh gôn, vì vậy câu trả lời ngắn nhất bằng byte sẽ thắng. Sơ hở tiêu chuẩn bị cấm.
Các trường hợp thử nghiệm
Cột đầu tiên là đầu vào. Cột thứ hai là đầu ra dự kiến.
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