मुख्य कारक में गुण


9

मैंने पीपीसीजी में एक और प्रमुख चुनौती देखी, और मुझे कुछ प्रेम हैं। तब मैंने परिचयात्मक पाठ को गलत तरीके से पढ़ा, और सोचा कि यहाँ रचनात्मक दिमाग क्या है।

यह पता चला है कि सामने आया सवाल तुच्छ था, लेकिन मुझे आश्चर्य है कि अगर वही सवाल मैं (सच) पढ़ता हूं, तो यह सच है:


6 को 2 ^ 1 * 3 ^ 1 द्वारा दर्शाया जा सकता है, और 50 को 2 ^ 1 * 5 ^ 2 (जहां ^ घातांक इंगित करता है) द्वारा दर्शाया जा सकता है।

आपका कार्य:

किसी संख्या के इस निरूपण में कितने अलग-अलग अपराध हैं, यह निर्धारित करने के लिए एक कार्यक्रम या कार्य लिखें ।

इनपुट:

एक पूर्णांक n ऐसा कि 1 <n <10 ^ 12, किसी भी सामान्य विधि द्वारा लिया गया।

आउटपुट:

N के अनूठे प्रमुख कारकों का प्रतिनिधित्व करने के लिए आवश्यक विभिन्न अपराधों की संख्या ।

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

Input      Factorisation      Unique primes in factorisation representation
24         2^3*3^1            2 (2, 3)
126        2^1*3^2*7^1        3 (2, 3, 7)
8          2^3                2 (2, 3)
64         2^6                1 (2) (6 doesn't get factorised further)
72         2^3*3^2            2 (2, 3)
8640       2^6*3^3*5^1        3 (2, 3, 5)
317011968  2^11*3^5*7^2*13^1  6 (2, 3, 5, 7, 11, 13)
27         3^3                1 (3)

यह एक OEIS अनुक्रम नहीं है।

स्कोरिंग:

ये है बाइट्स जीत में सबसे कम स्कोर!


के लिए अपेक्षित परिणाम क्या है 64? क्या यह 2 (2,3)(6 के रूप में 2 * 3 के रूप में दर्शाया जा सकता है) या 1 (2)(6 को अनदेखा)?
एमिग्ना

के लिए 64अपेक्षित परिणाम 1 (2) है। मुझे इसे पुनरावृत्ति करने का विचार पसंद है, लेकिन यह वह तरीका नहीं है जिससे मैंने मूल प्रश्न पढ़ा। मुझे लगा 8640कि एक उपयुक्त परीक्षण मामला है, लेकिन अधिक स्पष्ट होना चाहिए था - धन्यवाद।
pbeentje

आप दावा करते हैं कि यह OEIS अनुक्रम नहीं है। क्या यह A001221, (छोटे) ओमेगा फ़ंक्शन के मूल्य नहीं है?
ग्रे टेलर

A001221 समान है, लेकिन इस अभ्यास में प्रमुख के रूप में घातांक को शामिल किए जाने के कारण 8 और 9 (यहां 2, A001221 1) शब्दों में विचलन करना शुरू कर देता है।
pbeentje

ओह समझा। मुख्य कारक लिखें, फिर देखें कि मैंने कितने अलग-अलग नियम लिखे (भूमिका चाहे जो भी हो)। मुझे आश्चर्य है कि क्या होता है यदि आप एक कदम आगे जाते हैं और घातांक का कारक बनते हैं ...
ग्रे टेलर

जवाबों:


5

गणितज्ञ, 39 बाइट्स

Count[Union@@FactorInteger@#,_?PrimeQ]&

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

मार्टिन एंडर (-11 बाइट्स) के लिए धन्यवाद


CasesSelect(-4 बाइट्स) से छोटा होना : Tr[1^Union@Cases[FactorInteger@#,_?PrimeQ,2]]&(एक ताजा कर्नेल पर सभी परीक्षण मामलों को पारित करता है)
जुंगवान मिन ऑक्ट

कैसे के बारे में Count[Union@@FactorInteger@#,_?PrimeQ]&? (सभी परीक्षण मामलों की जाँच नहीं की गई है।)
मार्टिन एंडर

@MartinEnder लगता है कि यह काम करना चाहिए। सभी परीक्षण मामलों को भी पास करता है।
जंगहवान मिन ऑक्ट

5

05AB1E , 9 7 बाइट्स

केविन क्रूज़सेन के लिए धन्यवाद 2 बाइट्स बचाए

ÓsfìÙpO

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

व्याख्या

Ó        # push the prime factor exponents of the input
 sfì     # prepend the prime factors of the input
    Ù    # remove duplicates
     p   # check each if it is prime
      O  # sum

1
€pOप्रमुख कारकों और घातांक को विलय करने के बाद उपयोग करके -1 बाइट :ÓsfìÙ€pO
केविन क्रूज़सेन

@ केविनक्रूजसेन: धन्यवाद! वास्तव में 2 की जरूरत नहीं है के बाद से बचाता है।
एमिगा

आह, जरूर .. वाह, यकीन नहीं होता कि मैं कैसे चूक गया, हाहा xD
केविन क्रूज़सेन


4

जेली ,  9  7 बाइट्स

ÆFFQÆPS

इसे ऑनलाइन आज़माएं! या परीक्षण सूट की जाँच करें।

कैसे?

ÆFFQÆPS ~ पूर्ण कार्यक्रम।

ÆF ~ प्रधान कारक के रूप में [अभाज्य, प्रतिपादक] जोड़े।
  च ~ चपटा।
   क्यू ~ डेडुप्लिकेट।
    .P ~ प्रत्येक के लिए, जांचें कि क्या यह प्रधान है। 1 अगर सच है, तो 0 गलत।
      S ~ सम।

4

गैया , 6 बाइट्स

ḋ_uṗ¦Σ

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


  • अभाज्य गुणनखण्ड की गणना करता है, जैसा कि [अभाज्य, प्रतिपादक] जोड़े।

  • _ सूची को समतल करता है।

  • u डुप्लिकेट तत्वों को निकालता है।

  • ṗ¦तत्वों के माध्यम से नक्शे और 1 अगर एक प्रमुख पाया जाता है, 0 अन्यथा।

  • Σ सूची तैयार करता है।


3

CJam (13 बाइट्स)

{mFe__&:mp1b}

ऑनलाइन टेस्ट सूट

यह बहुत सीधा है: गुणन के साथ primes प्राप्त करें, अलग-अलग मानों को कम करें, primes को फ़िल्टर करें।

दुर्भाग्य से मार्टिन , कुछ मामलों जो अपने मूल जवाब में हल्का दिलचस्प चाल द्वारा नियंत्रित नहीं कर रहे थे ने कहा, हालांकि वह भी अवलोकन के बाद से है कि द्वारा एक 1-बाइट की बचत प्रदान किया mpदेता है 0या 1यह बजाय मैप किया जा सकता फ़िल्टर किया।


2

ओम v2 , 6 5 बाइट्स

-1 बाइट @ मिस्टरकोड के लिए धन्यवाद

ä{UpΣ

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



@ Mr.Xcoder धन्यवाद! मैं उस बिल्ट-इन की तलाश कर रहा था, लेकिन उसे ढूंढने में सक्षम नहीं था ..
Cinaski








0

जे, 20 बाइट्स

3 :'+/1 p:~.,__ q:y'

हाथ से गिना जाता है, तो मुझे बताओ कि क्या यह बंद है।

कोई गोल्फ सुझाव?

बोरिंग सबमिशन: प्राइम फेक्टराइजेशन टेबल को समतल करें और प्रिम्स को गिनें।



0

जावास्क्रिप्ट (ईएस 6), 145 बाइट्स

n=>{for(a=[b=l=0],q=n,d=2;q>=2;)q%d?(b&&(a.push(0),l++),d++,b=0):(q/=d,a[l]++,b=1);for(i in a){for(d=1,e=a[i];e%d;d++);e-d||n%e&&l++};return l+1}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.