अपने कोड को प्राइम करें


37

इनपुट

इस चुनौती के लिए कोई इनपुट नहीं

चुनौती

एक कोड लिखें जो आउटपुट करता है:
पहले 10 अभाज्य संख्याएँ जिनके अंकों का योग आपके कोड के बाइट्स की संख्या के बराबर है

उदाहरण

मान लीजिए कि आपका कोड Co&%423@k"oo"कौन सा है, 13 bytes
आपका कोड आउटपुट होना चाहिए [67, 139, 157, 193, 229, 283, 337, 373, 409, 463]
जो पहले 10 अभाज्य संख्याएँ हैं जिनकी राशि .... ठीक है आपको मिल गया!

यदि आपका कोड है 8 bytes, तो आपको आउटपुट करना होगा[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]

नियम

आपको केवल पहले 10 ^ 8 अभाज्य संख्याओं का उपयोग करना होगा
जिसका अर्थ है कि आपकी सभी संख्याएँ <2038074743 = 10 ^ 8 वीं संख्याएँ होंगी

यदि आप इस रेंज में 10 प्राइम नंबर नहीं पाते हैं जो आपके बाइट्स को फिट करते हैं, तो आपको " बाइट्स की कार्यशील संख्या " ज्ञात करने के लिए अपने कोड को समायोजित करना होगा (आपको कुछ बाइट्स भी जोड़ना पड़ सकता है!)

बस किसी भी तरह से 10 primes आउटपुट करें

यह , इसलिए बाइट्स में सबसे छोटा कोड जीत जाता है!


1
टिप्पणी संपादित नहीं कर सकता, इसलिए मैं केवल हटा रहा हूं और पुनर्प्रतिष्ठित कर रहा हूं: यहां उन गाइंट्स हैं, जिनमें आपको दिए गए बायटेकाउंट के साथ-साथ उनके सूचकांकों के लिए आउटपुट की आवश्यकता होगी: लिंक चूंकि मैंने इसे भोलेपन से किया था, इसलिए मैंने केवल रकम की जांच की पहले 10 ^ 7 primes के लिए। जैसे कुछ जवाबों में उल्लेख किया गया है, ऐसे लापता मूल्य हैं जो संभवतया अस्वीकार्य डिजिटल रकमों से संबंधित हैं, हालांकि बड़ी रकम के लिए यह मामला नहीं हो सकता है (याद रखें, मैंने केवल पहले 10 ^ 7 primes की जांच की थी)।
कोल

"किसी भी तरह से आप पसंद करते हैं" : क्या अपराधियों को आदेश देने की आवश्यकता है?
अरण्युलड

@Arnauld नहीं, लेकिन वे किसी भी क्रम में 10 छोटे होने चाहिए

1
@KevinCruijssen यद्यपि आपका उत्तर अमान्य है, आप इसे बेहतर बनाने के लिए अन्य सदस्यों के साथ चर्चा करने के लिए इसे पोस्ट करने के लिए आपका स्वागत करते हैं।

1
@TessellatingHeckler मुझे यह भी लगता है कि 10 ^ 8 कटऑफ बल्कि मनमाना है। यह सत्यापित करने के लिए कि दस दी गई संख्याओं में सभी अंकों का योग 350 है, और सभी primes हैं, तेज होना चाहिए। हालांकि, यह सत्यापित करने के लिए कि वे दस वास्तव में सबसे छोटे संभव हैं, कठिन हो सकता है, मुझे लगता है।
जेपी स्टिग नीलसन

जवाबों:


15

नीम , 10 8 7 बाइट्स

-1 बाइट केवल ASCII के लिए धन्यवाद।

πᛦ𝐋Λ𝐬7𝔼

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

आउटपुट:

[7 43 61 151 223 241 313 331 421 601]

यह (अच्छी तरह से, कम से कम दृष्टिकोण) अस्वाभाविक है।

व्याख्या

πᛦ𝐋Λ𝐬7𝔼

π        push 13 (yes, very unintuitive :P)
 ᛦ       square (13² = 169)
  𝐋      push the first 169 primes
   Λ     filter those that when the following are executed, evaluate to 1
    𝐬    sum its digits and...
     7𝔼  check for equality against 7

2
अब तक का सबसे अच्छा .. !!!

νᛦ𝐋Λ𝐬7𝔼7 के लिए ... संपादित करें: π-> ν: पी
जोनाथन एलन

@JonathanAllan ऐसा लगता है कि आप ASCII द्वारा केवल निंजा रहे हैं। ;)
पूरी तरह से

वाह वहाँ वास्तव में पहले n primes पुश करने के लिए एक निर्देश है? साफ!
isaac9A

9

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

‘ÆNDS=14ø⁵#‘ÆN

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

यह प्रिंट:

[59, 149, 167, 239, 257, 293, 347, 383, 419, 491]

यह काम किस प्रकार करता है

‘ÆNDS=14ø⁵#‘ÆN
          #     Count the first 
         ⁵        10
                Non-negative integers which meet:
‘ÆN               the (z+1)-th prime  (1-indexed :*()
   D              digits
    S             sum
     =            equals
      14          14
           ‘ÆN  Get those primes

8
उन primes जाओ!
भूमिगत'

6

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

.f&qsjZT14P_ZT

इसे यहाँ आज़माएँ।

यह 14 बाइट्स और प्रिंट हैं:

[59, 149, 167, 239, 257, 293, 347, 383, 419, 491]

पायथ , 16 बाइट्स

.f&qssM`Z16P_ZTZ

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

ध्यान दें कि यह 15 बाइट्स हो सकता है: .f&qssM`Z16P_ZTZलेकिन ऐसे कोई भी प्राइम नहीं हैं जिनके पास उनके अंकों के योग के रूप में 15 हैं, चूंकि 15विभाज्य है 3, जो कि संख्या से भी विभाज्य होगा 3, इसलिए प्रधान नहीं होगा।

यह 16 बाइट लंबा और प्रिंट है:

[79, 97, 277, 349, 367, 439, 457, 547, 619, 673]

कैसे?

व्याख्या १

.f&qsjZT16P_ZT - Full program.

.f&           T  - First 10 numbers that satisfy the following:

           P_Z     - Are prime and
    sjZT           - And their sum of digits
   q     14        - Equals 14.

व्याख्या २

.f&qssM`Z16P_ZTZ - Full program.

.f&           T  - First 10 numbers that satisfy the following:

           P_Z     - Are prime and
    ssM`Z          - And their sum of digits
   q     16        - Equals 16.

1
बहुत बढ़िया! और जल्दी!

"बहुत कम प्राइम पूर्णांक जो कि उनके अंकों के योग के रूप में 15 हैं" - वास्तव में, क्योंकि 3 अंकों की विभाज्य संख्या 3 से विभाज्यता का अर्थ है :)
लिन

@ लीन ओह ज़रूर> _> - मैं गूंगा हूँ, सॉरी। निश्चित
श्री एक्सकोडर

6

भूसी , 13 बाइट्स

↑10fȯ=13ΣdfṗN

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

व्याख्या

            N    Take the (infinite) list of all natural numbers.
          fṗ     Select only the primes.
   fȯ            Filter again by the result of composing the following three functions:
         d         Get the decimal digits.
        Σ          Sum them.
     =13           Check whether the sum equals 13.
↑10              Take the first 10 primes in the result.

लगभग 10 बाइट्स के लिए यह golfed, लेकिन परिणाम में से एक गलत है :( tio.run/##yygtzv7//1HbREODtPxDyywftU04sqHg/38A
सिंह

@ लियो हेह, बहुत साफ-सुथरा होगा अगर वह काम करे :)
मार्टिन एंडर

6

हास्केल , 77 71 बाइट्स

x=take 10[i|i<-[1..],sum(read.pure<$>show i)==71,all((>0).rem i)[2..i-1]]

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

लाईकोनी की बदौलत 6 बाइट्स बचाए

71 बाइट्स के लिए:

[89999999,99899999,99998999,99999989,189989999,189998999,189999989,197999999,199898999,199979999]

आपके सभी नंबर <2038074743 होने चाहिए

1999999999 अनुमत सीमा में अंकों की अधिकतम राशि के साथ संख्या है, और यह राशि 82 है। 82 बाइट्स से परे कोई भी कार्यक्रम शर्त को पूरा नहीं करेगा। मुझे आशा है कि 77 बाइट्स ठीक हैं, लेकिन मुझे नहीं पता (यह अभी भी मेरे कंप्यूटर पर चल रहा है)।

संपादित करें: 77 बाइट्स के लिए दिया गया थोड़ा अनुकूलित संस्करण:

[699899999,779999999,788999999,789999989,797999999,798899999,799898999,799899899,799999799,879999899]



5

05AB1E , 10 बाइट्स

83LØʒSOTQ}

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

}के बाद से 9 गलत बाइट गिनती, एक पूरक के रूप में प्रयोग किया जाता है।

आउटपुट: [19, 37, 73, 109, 127, 163, 181, 271, 307, 433]

व्याख्या

83L        Push array [1, ..., 83], since 433 is the 83rd prime
   Ø       Map each to the nth prime
    ʒ      Get elements that return 1
     SO     When the sum of the digits
        Q   Equals
       T    10

लगभग 8 बाइट्स

यह मान्य होगा यदि एक और बाइट को बंद किया जा सकता है।

žyLØʒSO8Q

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

आउटपुट: [17, 53, 71, 107, 233, 251, 431, 503, 521, 701]

व्याख्या

žy          Push number 128, since 701 is the 125th prime
  L         Push array [1, ..., 128]
   ØʒSO8Q   Map to nth primes and filter to those with a digit sum of 8 (see above)

3

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

Select[Prime@Range[10^6],Tr@IntegerDigits@#==52&,10]

{} 799999,998989,999979,1789999,1798999,1979899,1989979,1997899,1999969,2599999

thanx @ @ एक पेड़ के लिए -6 बाइट्स


1
आप बता सकते हैं Selectकि आप कितनी चीजें वापस करना चाहते हैं:Select[Prime@Range[10^6],Tr@IntegerDigits@#==52&,10]
एक पेड़ नहीं

1
Select[Prime@Range[77705],Tr@IntegerDigits@#==50&]
लिन

2

जे, 29 बाइट्स

(#~(29=[:+/"."0@":)"0)p:i.872

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

निश्चित रूप से आरईपीएल पर काम करता है, शायद एक नियमित कार्यक्रम भी काम करता है (यह सुनिश्चित नहीं है कि जे ईमानदार होने के लिए कैसे आउटपुट करता है)।

पहला पास, विशेष रूप से आदर्श नहीं है, लेकिन मैं किसी भी अधिक चतुर दृष्टिकोण के बारे में नहीं सोच सकता। एक छोटे अनुक्रम हार्डकोडिंग की जांच करने जा रहे हैं।

व्याख्या

(#~(29=[:+/"."0@":)"0)p:i.872
                      p:i.872  First 872 primes
 #~                            Filter by
   (29=[:+/"."0@":)"0            Digital sum = 29
                   "0              For each
                ":                 Convert to string
           "."0                    Convert each character to a number
         +/                        Sum results
    29=                            Equate to 29

872 गारंटी देता है कि केवल पहले 10 प्राइम जिनकी डिजिटल राशि 29 है उनका उपयोग किया जाएगा।


2

वी , 73 71 बाइट्स

i8aa9
998a99
a98a
aa89
18998a9
18a8a
18a9989
197aa
199898a
1a7a9Ía/999

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

सरल प्रतिस्थापन प्रतिस्थापन संपीड़न - मैंने सभी संभावित उत्तर आउटपुटों की जांच की, और फिर कुछ "जो एक साधारण स्ट्रिंग प्रतिस्थापन है जो अधिकांश पात्रों को बचाता है" परीक्षण किया। जैसे इस तालिका को उत्पन्न करना । [संपादित करें: मैंने फिर से मेज पर देखा और देखा कि मैं इसके बजाय 71 बाइट संस्करण कर सकता हूं]।

उच्चतर प्राइम में उनके 9 से अधिक लंबे रन होते हैं, और सबसे अच्छा मैंने पाया कि जहां अंकों को 73 तक जोड़ा गया था, पैटर्न 89999 -> 1 चार्ट 99 बाइट्स से 63 बाइट्स तक पाठ को लाता है। शेष 10 बाइट्स में 'a' -> '89999' को पूर्ववत् करने का रास्ता खोजने से मुझे V.


1

जाप , 19 बाइट्स

L²õ f_j ©Zìx ¥19ïA

झसे आज़माओ


Explantaion

L²õ

õ1 से 100 तक पूर्णांक ( L) वर्ग का एक सरणी उत्पन्न करें ।

f_          Ã

fकिसी फ़ंक्शन के माध्यम से प्रत्येक को फ़िल्टर ( ), जहां Zवर्तमान तत्व है।

j

जांच करें कि Zक्या प्राइम है।

©

तार्किक और ( &&)।

Zìx

Zअंकों की एक सरणी में विभाजित करें ( ì) और इसके अलावा घटाएं ( x)।

¥19

के साथ समानता के लिए जाँच करें 19

¯A

¯10 वें तत्व को स्लाइस ( ) और परिणामी सरणी के आउटपुट।


1

जाप , 19 बाइट्स

AÆ_j ©19¥Zì x «X´}a

इसे ऑनलाइन आज़माएं! -Qसरणी को प्रारूपित करने के लिए ध्वज के साथ ।

पहले 10 प्राइम को आउटपुट करता है जिनके अंक इसमें शामिल होते हैं 19:

[199, 379, 397, 487, 577, 739, 757, 829, 883, 919]

ध्यान दें कि यह 18 बाइट्स ( ì xìx) के लिए गोल्फ हो सकता है , लेकिन 18 अंकों की राशि के साथ कोई प्राइम मौजूद नहीं है।

व्याख्या

[0, ..., 9]निम्नलिखित फ़ंक्शन द्वारा सरणी को मैप करें , जहां Xवर्तमान मूल्य है।

  _              }a

पहले पूर्णांक को लौटाएं जो निम्नलिखित फ़ंक्शन से सही है, जहां Zवर्तमान मान है

   j ©

जांचें कि क्या यह संख्या प्रधान है, और ...

      19¥Zì x

योगों xमें अंकों ( ì) का योग Z( ¥) 19,

              «X´

और Xमिथ्या है ( «है "और नहीं", या &&!)। यह भी गिरावट X( ´)।

परिणामी सरणी को अनुमानित रूप से आउटपुट किया जाता है।


ओह अच्छा; हम अलग-अलग तरीकों से बंधे हैं।
झबरा

1

PARI / GP, 40 बाइट्स

select(x->sumdigits(x)==40,primes(8600))

इसके बारे में अधिक गोल्फ नहीं ( xपहले 8600 primes के बीच अंक 40 के योग के साथ उन लोगों का चयन करें )। आउटपुट है:

[49999, 68899, 69997, 77899, 78889, 78979, 79699, 79987, 85999, 88789]


1

रूबी 2.4.1, 74 बाइट्स

मैं कोडगॉल्फ अनुकूलित भाषाओं में से एक को कभी भी हरा नहीं सकता था, लेकिन रूबी में ऐसा करना अभी भी मजेदार था। यह बताते हुए कि प्राइम कोर में नहीं है, बल्कि मानक पुस्तकालय में है। मुझे भी निराशा हुई कि मैं हास्केल को हरा नहीं सकता।

2.4.1 :014 > require'prime';2.step.lazy.select{|n|n.digits.sum==74&&n.prime?}.first(10)
=> [389999999, 398999999, 498989999, 498998999, 499898999, 499899989, 499979999, 499989989, 579989999, 588999899]

0

पारदोक (v0.2.7 +), 10 बाइट्स (CP-1252)

5h¶fφTBŠT=

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

5h         .. 5 hundred
  ¶        .. Check if a number is prime...
   f       .. ...filter by the preceding block; converts 500
           .. to the range [0, 1, ..., 499]
    φ      .. Filter by the following block:
     T     .. Ten
      B    .. Base; convert to base-10 digits
       Š   .. Sum, resulting in the digit sum
        T  .. Ten
         = .. Check if (the digit sum and ten are) equal

यह उन दोनों के बीच कोई विभाजक के साथ सभी नंबरों को प्रिंट करता है, क्योंकि थोड़ा संदिग्ध है। एक 11-बाइट प्रोग्राम जो प्रत्येक संख्या को एक अलग लाइन पर प्रिंट करता है:

nIè¶fφTBŠE=

इसके बारे में उल्लेख करने लायक एकमात्र चीज ऊपरी सीमा है जिसे बनाना थोड़ा अधिक कठिन है: 18 324 = 324।


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