एक सेमीप्राइम एन को देखते हुए , सबसे छोटा धनात्मक पूर्णांक m ज्ञात कीजिए जैसे N के दो कारकों में से एक का द्विआधारी प्रतिनिधित्व N * m के द्विआधारी प्रतिनिधित्व में पाया जा सकता है ।
उदाहरण
चलो सेमीप्राइम एन = 9799 पर विचार करें ।
हम m के विभिन्न मूल्यों को आजमाते हैं , जो 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
हम यहां रुकते हैं क्योंकि पिछले उत्पाद 101001
के द्विआधारी प्रतिनिधित्व में 41 का द्विआधारी प्रतिनिधित्व है , जो 9799 के दो कारकों में से एक है (अन्य एक 239 है )।
तो जवाब होगा 11 ।
नियम और नोट
- M के मान को भी आज़माना व्यर्थ है। उन्हें पूर्णता के लिए उपरोक्त उदाहरण में दिखाया गया था।
- आपके प्रोग्राम को किसी भी N का समर्थन करना चाहिए जिसके लिए N * m आपकी भाषा की कंप्यूटिंग क्षमताओं के भीतर है।
- आपको N * m के बाइनरी प्रतिनिधित्व के प्रत्येक संभावित विकल्प की कोशिश करने के बजाय N को पहले से फ़ैक्टर करने की अनुमति है, यह देखने के लिए कि क्या यह N का कारक है ।
- के रूप में MitchellSpector द्वारा सिद्ध , मीटर हमेशा मौजूद है।
- यह कोड-गोल्फ है, इसलिए बाइट्स में सबसे कम उत्तर जीतता है। मानक खामियों को मना किया जाता है।
परीक्षण के मामलों
पहला कॉलम इनपुट है। दूसरा कॉलम अपेक्षित आउटपुट है।
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