लगातार अपराधों के उत्पाद


11

सैंडबॉक्स में जमा करने के समय के रूप में, मेरे पास 17017 प्रतिष्ठा थी, जिसे आप सभी 7 × 11 × 13 × 17, 4 लगातार अपराधों के उत्पाद के रूप में परिभाषित कर पाएंगे।

कृपया एक इनपुट पूर्णांक तक दो या दो से अधिक लगातार प्राइम के सभी उत्पादों को आउटपुट करने के लिए एक फ़ंक्शन या प्रोग्राम लिखें n। उदाहरण के लिए, n=143आपको आउटपुट 6, 15, 30, 35, 77, 105, 143(या समकक्ष आउटपुट प्रारूप) दिया जाना चाहिए ।

I / O और खामियों पर सामान्य प्रतिबंध लागू होते हैं।

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



2
आउटपुट को सॉर्ट करना चाहिए या नहीं?
घातक

@ फ़ेटलाइज़ मेरा मतलब था कि इसे क्रमबद्ध किया जाना चाहिए, लेकिन मुझे लगता है कि मैंने इसे अच्छी तरह से निर्दिष्ट नहीं किया है और पहले से ही कई उत्तर हैं जो क्रमबद्ध सूची का उत्पादन नहीं करते हैं।
नील

जवाबों:


6

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

(कोई संदेह नहीं है कि यहां क्या करने के लिए गोल्फ है - हां ...)
-4 बाइट्स @Dennis करने के लिए धन्यवाद - एक सीमा का उपयोग करके n से अधिक के लिए चेक की जगह

ÆRẆP€ḟÆRfR

नोट - यह बेहद अकुशल है और परिणाम दोनों अनसोल्ड हैं।

यह TryItOnline पर परीक्षण करें

कैसे?

ÆRẆP€ḟÆRfR - main link takes an argument, n
ÆR    ÆR   - primes up to n
  Ẇ        - all sublists
   P€      - product for each
     ḟ     - filter out the primes (since the sublists include those of lnegth 1)
        fR - filter out any not in range [1,N]
             (yep, it's calculating all products of primes up to n - gross)

2
आप की जरूरत नहीं है µऔर ³; >Ðḟअपने आप ही ठीक काम करता है। fRऔर भी छोटा है।
डेनिस

@ डेनिस - मुझे आपकी बेहतर विधि का इंतजार है। धन्यवाद!
जोनाथन एलन

4

MATL , 25 20 बाइट्स

Zq&Xf"@gnq?2MpG>~?6M

कि में करने के लिए समान दृष्टिकोण जोनाथन एलन के जवाब

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


पुराना संस्करण, 25 बाइट्स

:YF!"@2<@sq0@0hhdz2=v?X@D

यह 1इनपुट से सभी नंबरों के लिए प्राइम फैक्टर अपघटन के प्रतिपादकों को प्राप्त करता है । प्रत्येक के लिए यह जाँच करता है:

  1. यदि सभी घातांक 2 से कम हैं।
  2. यदि सभी घातांक का योग 1 से अधिक है।
  3. प्रत्येक समाप्ति पर अतिरिक्त शून्य के साथ घातांक की सरणी को बढ़ाया जाता है। विस्तारित सरणी के निरंतर अंतर की गणना की जाती है। बिल्कुल 2 नॉनजरो अंतर होना चाहिए।

यदि तीन शर्तों को पूरा किया जाता है तो संख्या प्रदर्शित होती है। परिणाम बढ़ते क्रम में हैं।


4

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

n=>{for(i=1,P=[];i++<n;P[P.every(v=>i%v)?i:n]=i);P.map(i=>P.map(j=>j>i&&(p*=j)<=n&&console.log(p),p=i))}

डेमो

var f =
n=>{for(i=1,P=[];i++<n;P[P.every(v=>i%v)?i:n]=i);P.map(i=>P.map(j=>j>i&&(p*=j)<=n&&console.log(p),p=i))}

f(143)



1

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

f}PTftlY.:fP_YSQ)S

एक प्रोग्राम जो STDIN पर एक पूर्णांक का इनपुट लेता है और पूर्णांक की एक सूची प्रिंट करता है।

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

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

f}PTftlY.:fP_YSQ)S  Program. Input: Q
              SQ    Yield [1, 2, 3, ..., Q]
          fP_Y      Filter that by primality
        .:      )   Yield all sublists of that
    f               Filter the sublists by:
      lY             Length
     t               -1
                    removing sublists of length 1
f                S  Filter [1, 2, 3, ..., Q] (implicit input fill) by:
  PT                 Prime factorisation
 }                   is in the sublists
                    Implicitly print

1

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

ÆfÆCI=1Ȧµ€T

कम से कम जेली का जवाब नहीं है, लेकिन यह दृष्टिकोण बल्कि कुशल है और आउटपुट हल है।

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

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

ÆfÆCI=1Ȧµ€T  Main link. Argument: n

        µ€   Map the preceding chain over each k in [1, ..., n].
Æf             Compute all prime factors of k, with multiplicities.
  ÆC           Count the number of primes less than or equal to each prime factor.
               This maps the j-th to j.
    I          Increments; compute the forward differences of consecutive indices.
     =1        Compare each difference with 1.
       Ȧ       All; return 1 iff the array is non-empty and has no zeroes.
          T  Truth; yield all indices for which the chain returned 1.
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.