हम एक सेमीप्राइम को कारक बनाना चाहते हैं । इस चुनौती का लक्ष्य दो छोटे पूर्णांक और को खोजना है, ताकि को Fermat की विधि के साथ तुच्छ रूप से कारक जा सके, इस प्रकार के कारकों को आसानी से घटाया जा सकता है ।यू वी यू वी एन एन
काम
एक सेमी और एक सकारात्मक पूर्णांक को देखते हुए , हम और को इस प्रकार परिभाषित करते हैं :के एक्स वाई
y=x2-kN
चरण # 1 - खोजें
आपको सबसे पहले का सबसे छोटा संभव मान ज्ञात करने की आवश्यकता है जैसे कि एक वर्ग संख्या ( उर्फ सही वर्ग) है।वाई
यह को फेटर्म के फैक्टराइजेशन विधि के एकल पुनरावृत्ति के साथ कारक बनाने की अनुमति देता है । अधिक संक्षेप में, यह तुरंत होता है:
(अपडेट: यह क्रम अब A316780 के रूप में प्रकाशित हुआ है )
चरण # 2 - फैक्टराइज़
फिर आपको दो पॉजिटिव पूर्णांक और जैसे खोजने होंगे :वी
सी यू = एक्स + √
जहाँ और के मुख्य कारक हैं ।डी एन
सारांश
आपका काम एक प्रोग्राम या फ़ंक्शन लिखना है जो को इनपुट के रूप में लेता है और किसी भी क्रम और किसी भी उचित प्रारूप में और आउटपुट करता है।यू वी
उदाहरण
आइए विचार करें
चरण 1
का सबसे छोटा संभव मान , जो देता है:40
y=28232-40×199,163=+७९६९३२९-+७९,६६,५२०=2809=532कश्मीरएन=(2823+53)×(2823-53)kएन=2876×2770
चरण 2
का सही गुणनखण्ड , क्योंकि:k = 4 × 10
तो, सही उत्तर या तो या ।
नियम
- ऊपर वर्णित दो चरणों को सख्ती से लागू करने की आवश्यकता नहीं है। आप किसी भी अन्य विधि का उपयोग करने के लिए स्वतंत्र हैं, जब तक कि यह और के सही मूल्यों को नहीं खोज लेता है ।
- आपको अपनी भाषा में अहस्ताक्षरित पूर्णांक के मूल अधिकतम आकार तक सभी मूल्यों का समर्थन करना चाहिए ।
- इनपुट को सेमीप्राइम होने की गारंटी है।
- यह कोड-गोल्फ है, इसलिए बाइट्स में सबसे कम जवाब जीतता है।
- मानक खामियों को मना किया जाता है।
परीक्षण के मामलों
N | k | Output
-----------+------+------------
143 | 1 | [ 1, 1 ]
2519 | 19 | [ 1, 19 ]
199163 | 40 | [ 4, 10 ]
660713 | 1 | [ 1, 1 ]
4690243 | 45 | [ 9, 5 ]
11755703 | 80 | [ 40, 2 ]
35021027 | 287 | [ 7, 41 ]
75450611 | 429 | [ 143, 3 ]
806373439 | 176 | [ 8, 22 ]
1355814601 | 561 | [ 17, 33 ]
3626291857 | 77 | [ 7, 11 ]
6149223463 | 255 | [ 17, 15 ]
6330897721 | 3256 | [ 74, 44 ]
उदाहरण कार्यान्वयन
N
वास्तव में एक सेमीप्राइम होगा?