प्राइम्स 'एन' अंक


11

इसका कोई व्यावहारिक उद्देश्य नहीं है लेकिन यह गोल्फ के लिए मजेदार हो सकता है।

चुनौती

दिए गए एक नंबर n ,

  1. N में प्रत्येक अंक की मात्रा को गिनें और प्रत्येक गणना में 1 जोड़ें
  2. N का प्रधान गुणनखंड लें
  3. डुप्लिकेट प्राइम्स को शामिल किए बिना, एन के मुख्य कारक में प्रत्येक अंक की मात्रा की गणना करें
  4. चरण 1 और 3 से सूचियों के संबंधित तत्वों को एक साथ गुणा करके एक नई सूची बनाएं
  5. उस सूची का योग लौटाएं

उदाहरण के लिए, 121 में दो 1s और a हैं 2, इसलिए आपको चरण 1 से निम्नलिखित सूची प्राप्त होगी:

0 1 2 3 4 5 6 7 8 9
1 3 2 1 1 1 1 1 1 1

121 का प्रधान गुणनखण्ड 11 2 है , जो चरण 3 के लिए निम्न सूची देता है:

0 1 2 3 4 5 6 7 8 9
0 2 0 0 0 0 0 0 0 0

ध्यान दें कि हमने घातांक कैसे नहीं गिना। इन्हें पाने के लिए एक साथ गुणा करें:

0 1 2 3 4 5 6 7 8 9
0 6 0 0 0 0 0 0 0 0

और इस सूची का योग 6 है।

परीक्षण के मामलों

1 -> 0
2 -> 2
3 -> 2
4 -> 1
5 -> 2
10 -> 2
13 -> 4
121 -> 6

टिप्पणियाँ

  • मानक खामियों को मना किया जाता है।
  • इनपुट और आउटपुट किसी भी उचित प्रारूप में हो सकते हैं।
  • उन अंकों के लिए आपको सूची में (या चरण 3 के लिए शून्य) छोड़ना चाहिए जो संख्या में प्रकट नहीं हुए थे।
  • यह , इसलिए बाइट्स में सबसे छोटा समाधान जीतता है।

क्या 667 (= 23 * 29) दो 2s, एक 3, और एक 9 के लिए चरण 3 में बनाता है?
जोनाथन एलन

@JonathanAllan हाँ।
रामेनशेफ

2
@ wizzwizz4 232792560-> [2,1,4,2,1,2,2,2,1,2](चरण 1); 2*2*2*2*3*3*5*7*14*17*19(चरण 2); तो [0,5,1,2,0,1,0,2,0,1](चरण 3); तब [0,5,4,4,0,2,0,4,0,2](चरण 4); और इसलिए आउटपुट चाहिए 21
जोनाथन एलन

@JonathanAllan अगर मैं गिन सकता हूं तो अच्छा होगा। : - /
wizzwizz4

जवाबों:


2

जेली , 16 बाइट्स

ṾċЀØD
ÆfQÇ×Ç‘$S

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

स्वतंत्र रूप से विकसित और अन्य जेली समाधान के समान बिल्कुल नहीं ।

व्याख्या

मैं 242उदाहरण इनपुट के रूप में उपयोग करने के लिए गोंग हूँ ।

ṾċЀØD     Helper link
Ṿ          Uneval. In this case, turns it's argument into a string. 
           242Ṿ → ['2','4','2']. [2,11] → ['2', ',', '1', '1']. The ',' won't end up doing anything.
    ØD     Digits: ['0','1',...,'9']
 ċЀ       Count the occurrence of €ach digit in the result of Ṿ

ÆfQÇ×Ç‘$S  Main link. Argument 242
Æf         Prime factors that multiply to 242 → [2,11,11]
  Q        Unique elements → [2,11]
   Ç       Apply helper link to this list → [0,2,1,0,0,0,0,0,0,0]
     Ç‘$   Apply helper link to 242 then add 1 to each element → [1,1,3,1,2,1,1,1,1,1]
    ×      Multiply the two lists element-wise → [0,2,3,0,0,0,0,0,0,0]
        S  Sum of the product → 5

4

जेली ,  18  17 बाइट्स

-1 बाइट के लिए धन्यवाद caird coinheringaahing और H.PWiz (दो वैक्टर की जोड़ी से बचें)

DF‘ċЀ⁵
ÆfQÇæ.Ç‘$

एक सकारात्मक लिंक एक सकारात्मक पूर्णांक और एक गैर-नकारात्मक पूर्णांक लौटाता है।

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

कैसे?

DF‘ċЀ⁵ - Link 1, digitalCount: number(s)    e.g. [13,17]
D       - to decimal list (vectorises)            [[1,3],[1,7]]
 F      - flatten                                 [1,3,1,7]
  ‘     - increment (vectorises)                  [2,4,2,8]
      ⁵ - literal ten                             10
    Ѐ  - map across              (implicit range [1,2,3,4,5,6,7,8,9,10])
   ċ    - count                                   [0,2,0,1,0,0,0,1,0,0]

ÆfQÇæ.Ç‘$ - Main link: positive integer, n   e.g. 11999
        $ - last two links as a monad:
      Ç   -   call the last link (1) as a monad   [0,2,0,0,0,0,0,0,0,3]
       ‘  -   increment (vectorises)              [1,3,1,1,1,1,1,1,1,4]
Æf        - prime factorisation                   [13,13,71]
  Q       - deduplicate                           [13,17]
   Ç      - call the last link (1) as a monad     [0,2,0,1,0,0,0,1,0,0]
    æ.    - dot product                           8


या डॉट प्रोडक्ट का उपयोग करें
एच.पी.विज़

2

एपीएल (डायलॉग) , 43 41 बाइट्स

CY'dfns'
+/×/+/¨⎕D∘.=⍕¨(⎕D,r)(∪3pco r←⎕)

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

कैसे?

r←⎕ - इनपुट में r

3pco - प्रधान कारण

- अद्वितीय

⎕D,r- के rसाथ शुरू हुआ0-9

⍕¨ - कारकों और पूर्व निर्धारित सीमा को प्रारूपित करें

⎕D∘.= - स्ट्रिंग के प्रत्येक तत्व के साथ कार्टेशियन तुलना 0123456789

+/¨ - गठित दो तालिकाओं की प्रत्येक पंक्ति का योग करें

×/ - बचे हुए दो वैक्टरों को गुणा करें

+/ - पिछले वेक्टर का गठन किया



1

पायथन 2 , 136 127 बाइट्स

lambda a:sum(''.join(u(a)).count(`i`)*-~`a`.count(`i`)for i in range(10))
u=lambda a:[`j`for j in range(2,a)if a%j<1>len(u(j))]

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

क्रेडिट



@ Mr.Xcoder अद्यतन, मुझे दिखाने का उपयोग करने के लिए धन्यवाद -~मैं हमेशा उस पर थोड़ा भ्रमित था। और मुझे उस <1चीज को याद करना शुरू करना होगा । सहायता के लिए धन्यवाद।
नील

आप इसके लिए -~और संबंधित सामान के माध्यम से देख सकते हैं ।
श्री एक्सकोडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.