कुछ खुरदरी संख्या उत्पन्न करें


15

पृष्ठभूमि

यदि सभी प्रमुख कारकों के कड़ाई से अधिक nहोने पर एक संख्या को Bगर्त के रूप में वर्णित किया जा सकता nहै B

चुनौती

दो पॉजिटिव पूर्णांकों को देखते हुए Bऔर k, पहले- k Bक्रम संख्या को आउटपुट करते हैं ।

उदाहरण

आज्ञा f(B, k)देना एक समारोह है जो सेट देता है जिसमें पहली k Bसंख्या वाले नंबर होते हैं।

> f(1, 10)
1, 2, 3, 4, 5, 6, 7, 8, 9, 10

> f(2, 5)
1, 3, 5, 7, 9

> f(10, 14)
1, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59

2
क्या आप चुनौती के बारे में विस्तार से बता सकते हैं? मैं इसे नहीं समझता। शायद उदाहरणों की व्याख्या करें?
db

मुझे समझ में नहीं आता कि आप अपने सभी उत्तरों में 1 को क्यों शामिल करते हैं जब यह कभी भी अधिक से अधिक नहीं होता है B?
kamoroso94

1
1 का कोई प्रधान कारक नहीं है, इसलिए 1 का प्रत्येक मुख्य कारक B से बड़ा है और 1 को B के उत्पादन में स्वतंत्र दिखना चाहिए
Hood

@db अपराधों nमें फैक्टराइज करें । यदि उन सभी अपराधों की तुलना में अधिक है B, एन- Bगर्त है।
Addison Crump

@AddisonCrump तो उदाहरण के लिए, क्योंकि 35 के लिए primes 5 और 7 हैं, 35 4-रफ है? क्या यह कुछ मान्यता प्राप्त सामान्य शब्दावली है? इससे पहले कभी नहीं सुना। मैं अभी भी उदाहरणों के तहत नहीं, विशेष रूप से पिछले एक नहीं। 14 संख्या लेकिन 10 क्या है ??
db

जवाबों:


5

हास्केल , 53 44 बाइट्स

b%k=take k[n|n<-[1..],all((>0).mod n)[2..b]]

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

H.PWiz -9 बाइट्स के लिए धन्यवाद !

b%k=                       -- given inputs b and k
 take k                    -- take the first k elements from 
  [n|n<-[1..]              -- the infinite list of all n > 0
   ,all            [2..b]] -- where all numbers from 2 to b (inclusive)
      ((>0).mod n)         -- do not divide n.

यह कुछ हद तक सरलीकृत किया जा सकता है
H.PWiz

@ H.PWiz राइट, किसी तरह मैंने केवल-कॉम्प्रिहेंशन के अंदर -पार्ट लेने के बारे में सोचा (>b)(जो काम नहीं करता है) लेकिन दूसरे तरीके से नहीं। धन्यवाद!
लकोनी

5

पायथन 3 , 80 , 75 बाइट्स

lambda B,k:[i for i in range(1,-~B*k)if all(i%j for j in range(2,B+1))][:k]

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

5 बाइट बचाने के लिए शुकी के लिए धन्यवाद ।

बी*

वैकल्पिक समाधान:

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

B,k=input()
i=1
while k:
 if all(i%j for j in range(2,B+1)):print i;k-=1
 i+=1

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

यह समाधान उपरोक्त समाधान नहीं करता है । और बहुत अधिक कुशल है।


3
हम्म, यह धारणा शायद पुष्टि योग्य है, लेकिन फिर भी एक दिलचस्प समस्या है। मैं एक सबूत के लिए इनाम दूंगा।
Addison Crump

1
क्यों नहीं lambda B,k:[i for i in range(1,-~B*k)if all(i%j for j in range(2,B+1))][:k]?
शौकी

1
@BlackOwlKai जो अच्छा लगता है। यह भी देखें math.stackexchange.com/questions/2983364/…
Anush

@Anush दुख की बात है, मेरे सबूत से काम नहीं चला, क्योंकि मैंने एक गलती की
ब्लैक उल्लू काई


3

पर्ल 6 , 35 32 बाइट्स

-3 बाइट्स nwellnof के लिए धन्यवाद!

{grep(*%all(2..$^b),1..*)[^$^k]}

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

एक अनाम कोड ब्लॉक जो दो पूर्णांकों को लेता है और पूर्णांकों की सूची देता है।

व्याख्या

{                              }  # Anonymous code block
 grep(             ,1..*)        # Filter from the positive integers
      *              # Is the number
       %             # Not divisible by
        all(      )  # All of the numbers
            2..$^b   # From 2 to b
                         [^$^k]   # And take the first k numbers

क्या करता allहै?
Addison Crump

1
@AddisonCrump allजाँच करता है कि सूची के सभी तत्व सत्य हैं या नहीं। मैं जल्द ही पूरी बात के लिए एक स्पष्टीकरण जोड़ रहा हूँ
जो किंग

@nwellnhof वाह! तो यह है कि क्या जंक्शनों के लिए उपयोगी हैं!
जो राजा

हां, ध्यान दें कि आप [&]इसके बजाय उपयोग कर सकते हैं all
nwellnhof

@AddisonCrump मुझे लगता allहै कि इस तरह से किसी भी अधिक उपयोग नहीं किया जा रहा है, इसलिए मुझे अपना जवाब अपडेट करना चाहिए। allरेंज में मानों का एक जंक्शन बनाता है 2..b, और जंक्शन पर किए गए किसी भी संचालन को सभी मूल्यों पर क्रमिक रूप से निष्पादित किया जाता है। जब यह बूलियन संदर्भ में मूल्यांकन किया जाता है grep, तो यह इस बात में ढह जाता है कि क्या जंक्शन के सभी मूल्य सत्य हैं, अर्थात गैर-शून्य
जो किंग


2

चारकोल , 33 बाइट्स

NθNη≔⁰ζW‹Lυη«≦⊕ζ¿¬Φθ∧κ¬﹪ζ⊕κ⊞υζ»Iυ

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

NθNη

इनपुट Bऔर k

≔⁰ζ

z0 पर सेट करें ।

W‹Lυη«

जब तक हमारे पास kमूल्य हैं तब तक दोहराएं ।

≦⊕ζ

वृद्धि z

¿¬Φθ∧κ¬﹪ζ⊕κ

zसे सभी संख्याओं को विभाजित 2करें Bऔर देखें कि क्या कोई शेष शून्य है।

⊞υζ»

यदि नहीं, तो zपूर्वनिर्धारित खाली सूची पर धक्का दें।

Iυ

सूची को स्ट्रिंग और अंतर्निहित रूप से आउटपुट के लिए कास्ट करें।


2

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

के रूप में इनपुट लेता है (b)(k)

b=>k=>(o=[],n=1,g=d=>(d<2?o.push(n)==k:n%d&&g(d-1))||g(b,n++))(b)&&o

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

टिप्पणी की गई

b => k => (             // input = b and k
  o = [],               // o[] = output array
  n = 1,                // n = value to test
  g = d => (            // g = recursive function, taking the divisor d
    d < 2 ?             // if d = 1:
      o.push(n) == k    //   push n into o[] and test whether o[] contains k elements
    :                   // else:
      n % d && g(d - 1) //   if d is not a divisor of n, do a recursive call with d - 1
    ) ||                // if the final result of g() is falsy,
    g(b, n++)           // do a recursive call with d = b and n + 1
)(b)                    // initial call to g() with d = b
&& o                    // return o[]



1

एपीएल (एनएआरएस), 52 चार्ट, 104 बाइट्स

r←a f w;i
r←,i←1⋄→3
i+←1⋄→3×⍳∨/a≥πi⋄r←r,i
→2×⍳w>↑⍴r

ऊपर यह लगता है कि पंक्तियाँ 'r ← afw; i' के नाम 1 2 3 हैं; परीक्षण:

  o←⎕fmt
  o 1 h 2
┌2───┐
│ 1 2│
└~───┘
  o 1 h 1
┌1─┐
│ 1│
└~─┘
  o 10 h 14
┌14───────────────────────────────────────┐
│ 1 11 13 17 19 23 29 31 37 41 43 47 53 59│
└~────────────────────────────────────────┘

1

05AB1E , 9 बाइट्स

∞ʒÒ¹›P}²£

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

          # Infinite list starting at 1: [1,...]
 ʒ    }    # Filter it by:
  Ò        #  Get all prime factors of the current number
   ¹›      #  Check for each if they are larger than the first input
     P     #  And check if it's truthy for all of them
       ²£  # Leave only the leading amount of items equal to the second input
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.