पहले एक्स प्राइम्स के बीच एडिटिव प्राइम्स


16

Additive Primes की परिभाषा:

  • जिन संख्याओं में वास्तव में 2 भाजक होते हैं उन्हें प्रधान संख्या कहा जाता है ।

  • जो संख्याएँ प्रधान होती हैं और उनके अंकों का योग भी अभाज्य संख्याएँ होती हैं, उन्हें Additive Primes कहा जाता है


कार्य:

पूर्णांक को देखते हुए x, पहले xअभाज्य संख्याओं की गणना पहले अभाज्य संख्याओं और अभाज्य अभाज्य संख्याओं के साथ की जाती है 2। आधार 10 में संख्याओं का प्रतिनिधित्व किया जाता है।

नियम:

  • आउटपुट में पहले xअपराधों के बीच सभी additive primes होते हैं
  • 0 < x < 151इस चुनौती के लिए, कार्यक्षमता प्रयोजनों के लिए
  • चूँकि योजक योग सभी पूर्णांक हैं, इसलिए दशमलव की अनुमति नहीं है (उदाहरण: आपको आउटपुट होना चाहिए 2, नहीं 2.0) और उन्हें अंश के रूप में प्रदर्शित नहीं किया जाना चाहिए।

उदाहरण:

10 -> 2 3 5 7 11 23 29

स्पष्टीकरण:

पहले 10 primes हैं 2 3 5 7 11 13 17 19 23 29, और केवल 2 3 5 7 11 23 29उनके अंकों की संख्या अभाज्य संख्याएँ हैं, जो क्रमशः हैं 2,3,5,7,2,5,11, इसलिए वे योगात्मक हैं

से स्पष्टीकरण के बाद example 1, अन्य परीक्षण मामले हो सकते हैं:

2 -> 2 3

25 -> 2 3 5 7 11 23 29 41 43 47 61 67 83 89

7 -> 2 3 5 7 11

लीडरबोर्ड:


नोट: कृपया नव-संपादित नियम 1 को पढ़ें, यह आउटपुट स्वरूप में थोड़ा बदलाव लाता है


आपका कोड जितना संभव हो उतना कम होना चाहिए, क्योंकि यह , इसलिए बाइट्स में सबसे कम उत्तर जीतता है। सौभाग्य!


कोई बात नहीं। मैं हालांकि लगभग 24 घंटे प्रतीक्षा करने की सलाह दूंगा, क्योंकि हर बार जब आप उत्तर को स्वीकार करते हैं तो उन्हें 15 प्रतिनिधि मिलते हैं, लेकिन जब आप अन-एक्सेप्ट कर लेते हैं तो वे इसे खो देते हैं। यह कभी-कभी रोलरकोस्टर की सवारी करने और लगातार हारने और रेप हासिल करने के लिए कुछ निराशाजनक है।
R

जवाबों:


8

पाइके, by बाइट्स

~p>#Yss

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

सिंगल बाइट is_primeको केवल 3 घंटे पहले धक्का दिया गया था। गीठब कमिट

~p      -    All the prime numbers
  >     -   first input of them
   #Yss -  filter(^)
    Y   -     digits(^)
     s  -    sum(^)
      s -   is_prime(^)

3
क्या आपने इस चुनौती के अनुरूप अपनी भाषा संपादित की है? : डी
ड्यूसीस

इसलिए ... sसंख्याओं पर is_prime, और सूचियों पर योग?
कॉनर ओ'ब्रायन

@ ConorO'Brien हाँ, मैं इसे सूची और पूर्णांक के लिए अधिभारित करता हूँ
ब्लू

@ ड्यूजिस नो, मैं थोड़ी देर के लिए अर्थ रखता हूं क्योंकि मेरे पास प्राइम चेकिंग के लिए एक भी नोड नहीं है, केवल primes और डिवॉर्स में फैक्टरिंग। इससे पहले कि मुझे ऐसा करना पड़ता _Pजो इस मामले में 1 बाइट लंबा है
ब्लू

1
"चुनौती जीतने के लिए सबसे कम उम्र की सुविधा" के लिए एक नया दावेदार? तार द्वारा ~ 2 घंटे?
22

8

पायथन 2, 124 118 बाइट्स

रिकर की मदद से:

n,f,P=input(),filter,lambda n:all(n%i for i in range(2,n))
f(lambda x:P(sum(map(int,`x`)))&P(x),f(P,range(2,n*n))[:n])

मूल:

n,o,c,P=input(),0,2,lambda n:all(n%i for i in range(2,n))
while o<n:
 o+=P(c)
 if P(sum(map(int,`c`)))and P(c):print c
 c+=1

पायथन में primality की जाँच मजेदार नहीं है।


मैंने (पढ़ा: मेरे लिए कूल जे कोड लिखने के लिए कॉनर मिला) ने 9n के साथ यह परीक्षण किया है, काम नहीं करता है। : / n ** 2 काम करता है, लेकिन 1 बाइट की कीमत पर।
R

प्रयास करें n*nके लिएn**2
कोनोर ओ ब्रायन

8

रोड़ा , 136 135 बाइट्स

f n{P=[2]S=[2]seq 3,863|{|i|{P|{P+=i;s=0;((""..i)/"")|parseInteger _|s+=_;S+=i if[s in P and not(i in S)]}if{|p|[i%p>0]}_}if[#P<n]}_;S}

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

यह एक फ़ंक्शन है जो अनुरोध किए गए additive primes देता है।

उपयोग: main { f(25) | print ap for ap }कोड संस्करण 0.12 का उपयोग करता है, जो शाखा में हैroda-0.12

Ungolfed:

function f(n) {
    primes := [2]
    ultraprimes := [2]
    seq(3, 863) | for i do
        break if [ #primes = n ]
        if [ i%p != 0 ] for p in primes do
            primes += i
            sum := 0
            ((""..i)/"") | parseInteger _ | sum += digit for digit
            ultraprimes += i if [ sum in primes and not (i in ultraprimes) ]
        done
    done
    ultraprimes
}

1
अच्छी भाषा! आपने खुद को बहुत समय पहले बनाया था यह कैसा दिखता है? दर्ज़ा, बहुत अच्छा लग रहा है।
R

नीट भाषा! आप प्रोग्राम कैसे चलाते हैं?
कृति लिथोस

बस एक ही बात पूछने वाला था। हालाँकि मैंने दस्तावेज़ीकरण देखा, मैं स्रोत को पूरी तरह से चला या संकलित नहीं कर सकता। आपका दृष्टिकोण क्या है?
मिस्टर एक्सकोडर

@KritiiLithos @ Xcoder123 इसे जावा 8 और ग्रैडल की आवश्यकता है। इस उत्तर में मेरे द्वारा उपयोग किया जाने वाला संस्करण 0.12 (अपनी शाखा में) है। रिपॉजिटरी को पुनरावर्ती रूप से क्लोन किया जाना चाहिए। एक रनिंग जार बनाने के लिए, आह्वान करें gradle fatJar। क्या आपको संकलन करते समय कोई त्रुटि मिलती है?
फर्ग्यूसक

@fergusq रनिंग gradle fatJarमेरे लिए जार नहीं
बनती है

5

पर्ल 6 , 53 बाइट्स

{grep *.comb.sum.is-prime,grep(*.is-prime,0..*)[^$_]}

कोशिश करो

विस्तारित:

{
  grep
    *.comb.sum.is-prime, # find the ultra primes from:
    grep(
      *.is-prime,        # find the primes
      0..*               # from all integers
    )[ ^$_ ]             # grab only the first x primes
}

यदि इस चुनौती को बदल दिया गया था ताकि आप पहले एक्स अल्ट्राप्राइम्स को ले लें तो इसे छोटा किया जा सकता है

{grep({($_&.comb.sum).is-prime},0..*)[^$_]}

5

पायथन 2 , 96 87 बाइट्स

p=-input(),0;m=k=1
while sum(p):
 m*=k*k;k+=1;p+=m%k,
 if m%k*p[int(`k`,36)%35]:print k

9 बाइट बंद करने के लिए @xnor को धन्यवाद!

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


ऐसा लगता है कि संकेतक चर की सूची का उपयोग कम है।
xnor

अंकों का योग जितना हो सके उतना कम किया जा सकता है int(`k`,36)%35। सभी इनपुट काफी छोटे होंगे जो यह पर्याप्त है।
xnor


वाह! मुझे यकीन है कि मैं एक बूलियन dict का कैसे सोचा नहीं बल्कि एक बूलियन टपल (मसा 20/20 है) नहीं कर रहा हूँ, लेकिन sum(p)और int(`k`,36)%35कुछ और ... धन्यवाद कर रहे हैं!
डेनिस

5

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

Prime@Range@#~Select~PrimeQ@*Tr@*IntegerDigits&

Mathematica की शॉर्टहैंड सिंटैक्स से पूरी तरह परिचित नहीं है - वह क्या है @*? *नहीं लगती है जैसे कि यह सही जगह में है गुणा होना करने के लिए?
नंबरमैनी

3
@numbermaniac यह फ़ंक्शन रचना है। f@*gअनिवार्य रूप से है f@g@##&
मार्टिन एंडर

4

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

ÆNDS$€ĖÆPM

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

कैसे?

थोड़ा अलग दृष्टिकोण ...

ÆNDS$€ĖÆPM - Main link: n (>0)           e.g. 10
ÆN         - nth prime number                 29
     €     - for each in range(1,nth prime)   [1,    2,    3,   ..., 27,    28,     29]
    $      - last two links as a monad
  D        -     decimal digit list          [[1],  [2],  [3],  ...,[2,7], [2,8],  [2,9]]
   S       -     sum                          [1,    2,    3,   ..., 9,     10,     11]
      Ė    - enumerate                       [[1,1],[2,2],[3,3],...,[9,27],[10,28],[11,29]]
       ÆP  - is prime? (vectorises)          [[0,0],[1,1],[1,1],...,[0,1], [0,0],  [1,1]]
         M - indices of maximal elements     [       2,    3,   ...,                29]

3
का अच्छा उपयोग Ė
डेनिस


3

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

ÆN€DS$ÆP$Ðf

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

स्पष्टीकरण:

ÆN € DS $ $P $ linkf मुख्य लिंक (args: z)
ÆN € पहले z primes उत्पन्न करें।
   डी एस $ डिजिटल राशि ले लो।
      .P जांचें कि क्या यह प्रधान है।
        $ पिछले दो लिंक में शामिल हों और एक मोनाड बनाएं।
         Ðf केवल उन तत्वों को रखें जो ऊपर की कसौटी के अनुरूप हों।

मैं बहक गया।


2

MATL, 15 13 बाइट्स

2 बाइट्स @Luis की बदौलत बच गईं

:Yq"@V!UsZp?@

इसे MATL ऑनलाइन पर आज़माएं

व्याख्या

        % Implicitly grab input as a number (N)
:       % Create an array [1...N]
Yq      % Get the k-th prime for each element k in that array
"       % For each element in this list
  @     % Get the current element
  V!U   % Break it into digits
  s     % Sum up the digits
  Zp    % Determine if this is a prime number
  ?@    % If it is, push the value to the stack
        % Implicit end of for loop and implicit display of the stack

@LuisMendo आह! मुझे पता था कि पहले भाग को छोटा करने का कोई तरीका था। धन्यवाद
Suever


1

ओम , 10 बाइट्स (CP437)

@▓_π;░_}Σp

यह बहुत छोटा होगा यदि मेरे पास पहले एन primes के लिए वैश्वीकरण या एक घटक था, लेकिन अफसोस, मैं इस चुनौती से पहले नहीं था (लेकिन मैं करता हूं) अब !)।

स्पष्टीकरण:

@▓_π;░_}Σp    Main wire, arguments: a

@▓  ;         Map...over the range (1..n)
  _π            nth prime
     ░        Select from ToS where...
      _}Σ       The sum of all digits
         p      is prime

1

पॉवरशेल , 120 बाइट्स

for($n=$args[0];$n){for(;'1'*++$i-notmatch($s='^(?!(..+)\1+$)..')){}if('1'*([char[]]"$i"-join'+'|iex)-match$s){$i};$n--}

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

PowerShell बेकार में प्रधान जाँच।

बाहरी forलूप इनपुट से $nनीचे तक जाता है 0। इनर लूप में, हम एक प्राइम जनरेटर का उपयोग करते हैं $i, फिर ifअंक-योग ( -join'+'|iex) भी एक प्रमुख है। यदि हां, तो हम $iपाइपलाइन पर डालते हैं । या तो मामले में, हम गिरावट $n--और बाहरी forलूप जारी रखते हैं। परिणामस्वरूप $iएस को पाइपलाइन से इकट्ठा किया जाता है और Write-Outputकार्यक्रम पूरा होने पर एक निहित होता है।



0

MATL , 13 बाइट्स

:YqtFYA!XsZp)

MATL ऑनलाइन पर यह कोशिश करो !

व्याख्या

:      % Range [1 2 ... n], where n is implicit input
Yq     % Array of first n prime numbers
t      % Duplicate
FYA    % Convert to decimal digits. Gives a matrix, where each original 
       % number corresponds to a row. Left-pads with zeros if needed
!Xs    % Sum of rows
Zp     % Is prime? (element-wise)
)      % Use as logical index into the array of the first n prime numbers
       % Implicitly display
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.