हमें रेंज चर START और END दिए गए हैं। लक्ष्य रेंज [START, END] में अभाज्य संख्याओं की संख्या ढूंढना है।
हम जांचेंगे कि रेंज में संख्या i अभाज्य है या नहीं, यह जांच करके कि क्या 1 और i/2 के बीच 1 के अलावा कोई संख्या इसे पूरी तरह से विभाजित करती है। यदि यह अभाज्य है तो काउंट बढ़ाएं।
उदाहरण से समझते हैं
इनपुट
Start=1 End=20
आउटपुट
रेंज में अभाज्य संख्याएं: 8
व्याख्या
1 और 20 के बीच अभाज्य संख्याएं: 2,3,5,7,11,13,17,19।
इनपुट
Start=100 End=200
आउटपुट
रेंज में अभाज्य संख्याएं: 21
व्याख्या
100 और 200 के बीच अभाज्य संख्याएं: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम रेंज चर START और END लेते हैं।
फ़ंक्शन countPrimes(int strt,int end) रेंज में अभाज्य संख्याओं की संख्या लौटाता है।
प्रारंभिक चर count को 0 से आरंभ करें।
i=strt से i<=end तक फॉर लूप का उपयोग करके पार करें।
प्रत्येक संख्या i लें और isprime(i) का उपयोग करके जांचें कि यह अभाज्य है या नहीं।
फ़ंक्शन isprime(int num) 0 लौटाता है यदि संख्या गैर-अभाज्य है और 1 यदि यह अभाज्य है।
लूप के अंत में, काउंट को परिणाम के रूप में लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int isprime(int num){ if (num <= 1) return 0; for (int i = 2; i <= num/2; i++){ if (num % i == 0) { return 0; } } return 1; //यदि दोनों विफल हुए तो num अभाज्य है } int countPrimes(int strt,int end){ int count=0; for(int i=strt;i<=end;i++){ if(isprime(i)==1) { count++; } } return count; } int main(){ int START=10, END=20; cout <<endl<<"रेंज में अभाज्य संख्याएं: "<<countPrimes(START,END); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
रेंज में अभाज्य संख्याएं: 4