क्या यह सुपर-प्राइम है?


22

पृष्ठभूमि

एक सुपर-प्राइम एक अभाज्य संख्या है जिसका सूचकांक सभी अपराधों की सूची में भी प्रमुख है। अनुक्रम इस तरह दिखता है:

3, 5, 11, 17, 31, 41, 59, 67, 83, 109, 127, 157, 179, 191, ...

यह OEIS में अनुक्रम A006450 है

चुनौती

एक सकारात्मक पूर्णांक को देखते हुए, निर्धारित करें कि क्या यह एक सुपर-प्राइम है।

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

२: असत्य
3: सच है
४: असत्य
5: सच है
False: असत्य
11: सच है
13: असत्य
17: सच
709: सच
851: असत्य
991: सच

स्कोरिंग

यह , इसलिए प्रत्येक भाषा में सबसे कम उत्तर जीतता है।


6
2 का सूचकांक क्या है ? यह 1 या 0 है ?
डेनिस

1
@ डेनिस अनुक्रम 1-अनुक्रमित है; 2 का सूचकांक 1. है
संगीतज्ञ 523

2
पहले पढ़ा कि सुपर-प्राइम क्या है: आप सुपर-सुपर-प्राइम को क्या कहेंगे? या सुपर ^ 3-primes? ब्रह्मांड में परमाणुओं की संख्या या 11 वीं सुपर ^ 11 प्राइम कितनी बड़ी है? तुम, प्रिय इंटरनेट व्यक्ति, मेरे प्राइम टाइम के मेरे घंटों के कुछ और घंटे चुरा रहे हैं!
J_F_B_M

@J_F_B_M इसके आधार पर चुनौती दें! : डी
संगीतज्ञ ५२३

1
@J_F_B_M 11 एक सुपर-प्राइम है, जो सुपर-प्राइम लिस्ट में सूचकांक है, एक सुपर-प्राइम (3) भी है, इसलिए 11'th सुपर-प्राइम एक सुपर-सुपर-सुपर-प्राइम है
स्किड्सदेव

जवाबों:


21

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

ÆRÆNċ

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

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

ÆRÆNċ  Main link. Argument: n

ÆR     Prime range; yield the array of all primes up to n.
  ÆN   N-th prime; for each p in the result, yield the p-th prime.
    ċ  Count the occurrences of n.

8
गोश
डारन

3
वह हमेशा करता है ...
Gryphon -

@ETHproductions खैर, समाधान बहुत स्पष्ट है ... यह सिर्फ यहाँ निंजा है।
आउटगोल्फ जूल

14

गणितज्ञ, २६ २३ बाइट्स

3 बाइट बचाने के लिए user202729 का धन्यवाद।

PrimeQ/@(#&&PrimePi@#)&

यह इस तथ्य का उपयोग करता है कि गणितज्ञ सबसे निरर्थक अभिव्यक्ति को छोड़ देता है (इस मामले में, Andदो नंबरों की तार्किक ) और Mapन केवल सूचियों पर लागू किया जा सकता है। इसलिए हम Andइनपुट और उसके प्राइम इंडेक्स की गणना करते हैं, जो बस ऐसे ही रहता है, और फिर हम Mapइस अभिव्यक्ति पर परीक्षण Andकरते हैं, जो कि बूलियन्स के दो ऑपरेंड को बदल देता है , जैसे कि Andतब मूल्यांकन किया जा सकता है।


1
23 बाइट्स: PrimeQ/@(#&&PrimePi@#)&
user202729

@ user202729 अच्छा लगा, धन्यवाद। :)
मार्टिन एंडर

10

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

ÆRi³ÆP

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

उसी तकनीक का उपयोग करता है, जो मेरे जाप उत्तर के रूप में होती है: primes को n में उत्पन्न करें , उस सूची में n का सूचकांक प्राप्त करें , और जाँचें कि primality के लिए। यदि n ही प्राइम नहीं है, तो इंडेक्स 0 है , जो कि प्राइम भी नहीं है, इसलिए 0 को वैसे भी लौटा दिया जाता है।


9

जाप , 13 11 बाइट्स

õ fj bU Ä j

इसे ऑनलाइन टेस्ट करें!

व्याख्या

मेरे मूल सबमिशन के विपरीत, यह वास्तव में बहुत सीधा-सीधा है:

 õ fj bU Ä  j    
Uõ fj bU +1 j    Ungolfed
                 Implicit: U = input integer
Uõ               Generate the range [1..U].
   fj            Take only the items that are prime.
      bU         Take the (0-indexed) index of U in this list (-1 if it doesn't exist).
         +1 j    Add 1 and check for primality.
                 This is true iff U is at a prime index in the infinite list of primes.
                 Implicit: output result of last expression

4

पायथन 3 , 104 97 93 बाइट्स

p=lambda m:(m>1)*all(m%x for x in range(2,m))
f=lambda n:p(n)*p(len([*filter(p,range(n+1))]))

रिटर्न 0/ 1, अधिक से अधिक 4 बाइट्स पर अगर यह होना है True/ False

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


1
0/1 ठीक है। अच्छा जवाब! चूंकि आप कभी भी मूल्य का उपयोग नहीं करते हैं f, आप अपने कोड को इस तरह से सुधार सकते हैं और इसे बाइट काउंट से बाहर कर सकते हैं ।
संगीतकार ५२३

@ musicman523 टिप के लिए धन्यवाद!
C मैकऑवॉय

3

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

ÆCÆPaÆP

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

ÆCइनपुट की तुलना में या उससे कम primes की संख्या को गिना जाता है (इसलिए, यदि इनपुट n प्रधानमंत्री है, तो यह n लौटता है )। फिर ÆPइस सूचकांक को परिक्षण के लिए परखता है। अंत में, मूल इनपुट के aएक तार्किक और इस परिणाम और ÆP(मौलिकता परीक्षण) के बीच होता है।







1

QBIC , 33 बाइट्स

~µ:||\_x0]{p=p-µq|~q=a|_xµp]q=q+1

व्याख्या

~   |   IF   ....  THEN (do nothing)
  :         the number 'a' (read from cmd line) 
 µ |        is Prime
\_x0        ELSE (non-primes) quit, printing 0
]           END IF
{           DO
            In this next bit, q is raised by 1 every loop, and tested for primality. 
            p keeps track of how may primes we've seen (but does so negatively)
    µq|     test q for primality (-1 if so, 0 if not)
p=p-        and subtract that result from p (at the start of QBIC: q = 1, p = 0)
~q=a|       IF q == a
_xµp        QUIT, and print the prime-test over p (note that -3 is as prime as 3 is)
]           END IF
q=q+1       Reaise q and run again.


1

हास्केल, 121 बाइट्स

f=filter
p x=2==(length$f(\a->mod(x)a==0)[1..x])
s=map(\(_,x)->x)$f(\(x,_)->p x)$zip[1..]$f(p)[2..]
r x=x`elem`(take x s)

1
(\(_,x)->x)है snd, (\(x,_)->p x)है (p.fst)। दोनों fstऔर sndप्रस्तावना में हैं, इसलिए आयात के लिए कोई जरूरत नहीं।
लाइकोनी

बैकटिक भी अक्सर उपयोग न करें : r x=elem x$take x s। हालांकि, इस मामले में आप pointfree (बैकटिक फिर से शुरू करने) जा सकते हैं और समारोह नाम हटा दें: elem<*>(`take`s)
निम्मी



1

मतलाब, 36 34 बाइट्स

टॉम बढ़ई के लिए धन्यवाद 2 बाइट्स सहेजे गए।

अंतर्निहित कार्यों का उपयोग करके एक बहुत ही भोली कार्यान्वयन:

isprime(x)&isprime(nzz(primes(x)))

1
ऑक्टेव के लिए केवल आप एक और बाइट भी बचा सकते हैं(p=@isprime)(x)&p(nnz(primes(x)))
टॉम कारपेंटर

1

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

def a(n):
 r=[2];x=2
 while x<n:x+=1;r+=[x]*all(x%i for i in r)
 return{n,len(r)}<=set(r)

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

निर्माण r, primes की सूची <= n; यदि n प्रधानमंत्री है, तो nहै len(r)'वें प्रधानमंत्री। तो n, r और len (r) में r में एक सुपर प्राइम iff n है।



0

जूलिया 0.6, 61 बाइट्स

return 1 if x is a super-prime, 0 otherwise.

without using an isprime-kind function.

x->a=[0,1];for i=3:x push!(a,0i%(2:i-1))end;a[sum(a)]&a[x]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.