प्राइम नंबर क्या होते हैं?
एक अभाज्य संख्या 1 से बड़ी एक पूर्ण संख्या होती है जिसे स्वयं और 1 (जैसे 2, 3, 5, 7, 11) के अलावा किसी अन्य पूर्ण संख्या से विभाजित नहीं किया जा सकता है।
संख्या 5 एक अभाज्य संख्या है क्योंकि इसके केवल कारक 1 और 5 हैं।
संख्या 4 एक अभाज्य संख्या नहीं है क्योंकि इसके कारक 1, 2 और 4 हैं।
चलिए एक ऐसा फंक्शन बनाते हैं जो अगर स्ट्रिंग एक अभाज्य संख्या है तो सही लौटेगा और अगर कोई संख्या अभाज्य संख्या नहीं है तो गलत लौटेगा।
isPrime(3); // true isPrime(9); // false
चलिए एक फंक्शन बनाते हैं
function isPrime(num) { }
एक अभाज्य संख्या 1 से बड़ी संख्या होती है। इसलिए, 1 से छोटी संख्या एक अभाज्य संख्या नहीं होती है।
function isPrime(num) { if (num <= 1) return false; }
isPrime(-5); // false
मॉडुलो ऑपरेटर का उपयोग विभाजन के बाद शेष प्राप्त करने के लिए किया जाता है। हम जाँच करने जा रहे हैं कि क्या संख्या को बिना शेष छोड़े अन्य गुणनखंडों (1 और स्वयं को छोड़कर) में विभाजित किया जा सकता है।
function isPrime(num) { if (num <= 1) return false; for (let i=2; i<num; i++) { if (num%i !== 0) return false; } return true; }
याद रखें कि 2 एक अभाज्य संख्या है।
function isPrime(num) { if (num <= 1) return false; if (num === 2) return true; for (let i=2; i<num; i++) { if (num%i === 0) return false; } return true; }
isPrime(5); //true isPrime(9); //false
क्या होगा यदि हमारे पास बड़ी संख्या है?
isPrime(56669900033);
हमारा कार्य धीमा चलेगा। हम वर्गमूल का उपयोग करके प्रक्रिया को छोटा कर सकते हैं। उदाहरण के लिए,
संख्या 121। 121 का वर्गमूल 11 है। इसका अर्थ है कि 121 एक अभाज्य संख्या नहीं है , क्योंकि एक अभाज्य संख्या केवल स्वयं और 1 से समान रूप से विभाजित की जा सकती है। इसलिए, 2 से 121 तक पुनरावृति करने के बजाय, हम केवल 121 के वर्गमूल, 11 तक पुनरावृति कर सकते हैं।
Math.sqrt() किसी संख्या का वर्गमूल ज्ञात करें।
function isPrime(num) { if (num <= 1) return false; if (num === 2) return true; let numSqrt = Math.sqrt(num); for (let i=2; i<=numSqrt; i++) { if (num%i === 0) return false; } return true; }
isPrime(5); //true isPrime(121); //false
यदि p और 2p+1 दोनों अभाज्य हैं, तो p सोफी जर्मेन अभाज्य है। उदाहरण के लिए, 2, 3, 5, 11, 23, 29, 41, 53, 83, 89…
5 एक अभाज्य संख्या है और 5*2+1=11
11 भी एक अभाज्य संख्या है। अतः, 5 और 11 दोनों सोफी जर्मेन अभाज्य संख्याएँ हैं।
चलिए एक ऐसा फंक्शन बनाते हैं जो 2 से n तक सोफी जर्मेन अभाज्य संख्याओं की एक सरणी लौटाएगा।
हम अपने isPrime () फ़ंक्शन का उपयोग पिछले उदाहरण से यह जाँचने के लिए करेंगे कि संख्या अभाज्य है या नहीं।
function getGermainPrimes(n) { let result = []; // an array of Sophie Germain prime numbers (our result) for (let i = 0; i <= n; i++) { if (isPrime(i) && isPrime(i*2 + 1)) { //if both i and 2i+1 are prime result.push(i); } } return result; }
getGermainPrimes(100); // [2, 3, 5, 11, 23, 29, 41, 53, 83, 89]
मुझे आशा है कि आपको यह मददगार लगा होगा!