हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक संख्या लेता है, जैसे n।
फ़ंक्शन को 1 और n के बीच सभी अभाज्य संख्याओं की एक सरणी लौटानी चाहिए।
दृष्टिकोण
पहला कदम दी गई संख्या जितनी बड़ी एक सरणी बनाना है, इसके सभी मानों को सत्य के रूप में प्रारंभ किया गया है। सरणी अनुक्रमणिका सभी संभावित अभाज्य संख्याओं का प्रतिनिधित्व करेगी, जिसमें सभी शुरुआत में सत्य होंगे।
फिर, हम एक लूप के लिए बनाते हैं जो 2 से दी गई संख्या के वर्गमूल तक पुनरावृत्त होता है। परिभाषा के अनुसार, किसी भी पूर्णांक के गुणनफल अभाज्य नहीं हो सकते, जबकि 0 और 1 की उपेक्षा की जाती है क्योंकि उनके द्वारा विभाज्यता मौलिकता को प्रभावित नहीं करती है।
अंत में, हम सभी अभाज्य संख्याओं पर पहुंचने के लिए सभी असत्य मानों को आसानी से फ़िल्टर कर सकते हैं।
उदाहरण
const num = 100; const findPrimes = (num = 10) => { const numArr = new Array(num + 1); numArr.fill(true); numArr[0] = numArr[1] = false; for (let i = 2; i <= Math.sqrt(num); i++) { for (let j = 2; i * j <= num; j++){ numArr[i * j] = false; } } return numArr.reduce((acc, val, ind) => { if(val){ return acc.concat(ind); }else{ return acc; }; },[]); }; console.log(findPrimes(num));
आउटपुट
और कंसोल में आउटपुट होगा -
[ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 ]