2012-08-05 8 views
6

सीमा तक प्राइम्स की एक सूची उत्पन्न करें तर्क के ऊपर प्राइम की सूची उत्पन्न करने वाला सबसे आसान कार्य क्या है? उदाहरण के लिए:मैथमैटिका -

foo[n_] := Block[{A = {}, p = 2}, 
      While[p < n, A = Append[A, p]; p = NextPrime[p]]; 
      A] 

हालांकि, यह अत्यधिक गन्दा लगता है। मैं कुछ ऐसा करना चाहता हूं जैसे

foo[n_] := Table[Prime[i], {i,2,???}] 

कहां ??? NextPrime[n,-1] की अनुक्रमणिका है। क्या यह संभव है?

+0

आपको यह जानने में रुचि हो सकती है कि [गणित-विशिष्ट स्टैक एक्सचेंज साइट] (http://mathematica.stackexchange.com/) है। गणित में प्रोग्रामिंग करते समय, 'हालांकि', ['for'] (http://mathematica.stackexchange.com/q/2158/8), 'Do' और' Append' 'के सभी उपयोगों को जांचना हमेशा अच्छा होता है। वे अन्य भाषाओं से हैंगओवर हैं (और नीचे दिए गए उत्तरों के रूप में), [गणित में आमतौर पर अधिक संक्षिप्त दृष्टिकोण] (http://mathematica.stackexchange.com/q/7924/8) हैं। – Verbeia

उत्तर

6

उदाहरण

f[x_] := Prime[[email protected]@x] 

प्रयोग

Grid[Table[{x, f[x]}, {x, 13, 20}], Frame -> All] 

Mathematica graphics लिए

+0

धन्यवाद। जिस हिस्से में मैं लापता था (मैंने इसे बुलाया ???, मूल रूप से 'प्राइम' के विपरीत), 'प्राइमपी' था – user1339898

0

इसके लिए सामान्य एल्गोरिदम में से एक Sieve of Eratosthenes है। यह एक सीधा एल्गोरिदम है और किसी भी भाषा में लागू करने के लिए उचित रूप से आसान है।

+3

ओपी एक एल्गोरिदम के लिए नहीं पूछ रहा है, लेकिन एक विशिष्ट भाषा में एक विशिष्ट कार्य के लिए। इसके अलावा, प्रश्न की भाषा में पहले से उपलब्ध आवश्यक प्राइमेटिव हैं। उत्तर देने से पहले कृपया टैग देखें। –

2

मेरा पसंदीदा प्रपत्र:

p = Prime ~Array~ [email protected]# &; 

p @ 20 

{2, 3, 5, 7, 11, 13, 17, 1 9}

संबंधित मुद्दे