अभाज्य संख्याओं का उपयोग करके एक सूची बनाएँ


10

आपको सिक्कों के एन ढेर दिए गए हैं। आपने उन बी 1 , बी 2 , ..., बी एन ढेर में से प्रत्येक को लोगों के अलग-अलग समूहों में विभाजित करने का निर्णय लिया है । सिक्कों को प्राप्त करने वाले लोगों की संख्या एक प्रमुख संख्या होनी चाहिए और प्रत्येक व्यक्ति को दिए गए धन की राशि प्रत्येक ढेर में अलग होनी चाहिए।

इनपुट: एन, बी 1 , बी 2 , ..., बी एन (प्रत्येक व्यक्तिगत ढेर में सिक्कों की मात्रा)।

आउटपुट: एनपी 1 , एन पी 2 , ..., एन पी एन एन पी रहे लोगों की संख्या (अभाज्य संख्या) सिक्के प्राप्त होने के साथ। यदि यह असंभव है तो कुछ नायाब परिणाम उपज (जैसे 0, -1, None, [], या "impossible") या कोई त्रुटि बढ़ा।

उदाहरण:

3
7 8 9

आउटपुट: 7 2 3

क्योंकि 7 एकमात्र अभाज्य संख्या है जो 7 को समान रूप से विभाजित कर सकता है, वही 8 और 2 और 9 के लिए और 3. इसके अलावा, ध्यान दें कि (7/7 = 1) ≠ (8/2 = 4) ≠ (9/3 = 3) )।


2
Nक्या एक निरर्थक इनपुट है, क्या हम इसे लेने से चूक सकते हैं?
जोनाथन एलन

क्या हम कुछ अन्य गैर-प्राप्त परिणाम प्राप्त कर सकते हैं (जैसे 0, एक खाली सूची, एक स्ट्रिंग जैसे "असंभव" या असंभव मामलों को उठाना)? (मैं वास्तव में केवल वैध इनपुट की सिफारिश करूंगा, या इस तरह के मामलों में अपरिभाषित व्यवहार की अनुमति दूंगा, लेकिन यह आपके ऊपर है।)
जोनाथन एलन

2
आप एन के इनपुट को छोड़ सकते हैं और दूसरे प्रश्न के लिए हाँ कर सकते हैं।
मैकलिनक्स

तो, प्रत्येक संख्या का सबसे कम अभाज्य भाजक?
17:53

@totallyhuman काफी नहीं - इनपुट कहना थे अगर [7,8,8]यह असंभव हो जाएगा (का उपयोग कर के बाद से 2दोनों के लिए 8दो में परिणाम 4। रों) इसके अलावा, अगर इनपुट कहना थे [7,30,30]तो [7,2,2]अमान्य लेकिन हो सकता है [7,2,3]और [7,3,2]दूसरों के बीच में काम करेगा।
जोनाथन एलन

जवाबों:


5

05AB1E , 13 बाइट्स

Ò.»â€˜ʒ÷DÙQ}θ

इसे ऑनलाइन आज़माएं!

मेरे पाइथ उत्तर का एक बंदरगाह।

  • Òप्रधानमंत्री तथ्य हो जाता हे प्रत्येक के रु।
  • सूची में प्रत्येक दो तत्वों के बीच दाएं से बाएं / बाएं ऑपरेंड के साथ एक डाइएडिक कमांड, â(c r rtei â n उत्पाद) को सिल देता है।
  • €˜चपटा य।
  • ʒ...}filt t rs जो निम्नलिखित स्थिति को पूरा करता है:
    • ÷ इनपुट के साथ युग्मक पूर्णांक विभाजन।
    • D डी अपसेट (स्टैक के लिए आइटम की दो प्रतियों को धक्का देता है)।
    • Ùडुप्लिकेट तत्वों, एक रखने को हटा यू Niq यू ई प्रत्येक तत्व की घटना।
    • Qक्यू uality के लिए जाँच ।
  • θ अंतिम तत्व मिलता है।

4

जेली ,  15  14 बाइट्स

³:ŒQẠ
ÆfŒpÇÐfṪ

एक पूर्ण-कार्यक्रम, जो एक तर्क, संख्याओं की एक सूची को स्वीकार करता है, और संख्याओं की एक अन्य सूची का प्रतिनिधित्व करता है, या 0यदि कार्य असंभव है।

इसे ऑनलाइन आज़माएं!

कैसे?

³:ŒQẠ - Link 1, unique after division?: list of primes, Ps   e.g. [7,2,2]  or  [7,3,3]
³     - program's first input                                e.g. [7,8,8]  or  [7,9,30]
 :    - integer division by Ps                                    [1,4,4]      [1,3,10]
  ŒQ  - distinct sieve                                            [1,1,0]      [1,1,1]
    Ạ - all truthy?                                               0            1

ÆfŒpÇÐfṪ - Main link: list of coin stack sizes, Bs   e.g. [7,8,12]
Æf       - prime factorisation (vectorises)               [[7],[2,2,2],[2,2,3]]
  Œp     - Cartesian product                              [[7,2,2],[7,2,2],[7,2,3],[7,2,2],[7,2,2],[7,2,3],[7,2,2],[7,2,2],[7,2,3]]
     Ðf  - filter keep if:
    Ç    -   call last link (1) as a monad                 1       1       0       1       1       0       1       1       0
         -                                                [[7,2,2],[7,2,2],[7,2,2],[7,2,2],[7,2,2],[7,2,2]]
       Ṫ - tail (note: tailing an empty list yields 0)    [7,2,2]
         - implicit print

+1 हाहा, मुझे लगता है कि µ⁼Qयह फैंसी अलग छलनी के विकल्प के रूप में काम करेगा, लेकिन अच्छी नौकरी!
श्री एक्सकोडर

2

अजगर , 15 बाइट्स

ef{I/VQT.nM*FPM

यहाँ कोशिश करो!

कैसे?

एफई {I / VQT.nM * FPM | पूर्ण कार्यक्रम, जो आकार को सामने रखता है।
                |
             पीएम | प्रत्येक पूर्णांक का प्रधान गुणनखंड।
           * एफ | गुना की सूची में कार्टेशियन उत्पाद को मोड़ो।
        .nM | प्रत्येक को चपटा करें।
 च | फ़िल्टर।
  {I / VQT | फ़िल्टर स्थिति (एक चर टी का उपयोग करता है)।
    / वी | वेक्टर पूर्णांक विभाजन ...
      क्यूटी | इनपुट और वर्तमान आइटम पर।
  {मैं | क्या डिडुप्लीकेशन (डुप्लिकेट्स को हटाना) पर आक्रमण होता है?
ई | अंतिम तत्व को लें।
                | परिणाम को स्पष्ट रूप से आउटपुट करें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.