संख्याओं की श्रेणी को परिभाषित करने के लिए हमें दो नंबर START और END दिए गए हैं। लक्ष्य उन संख्याओं को खोजना है जिनके अभाज्य गुणनखंड केवल 2 और 3 हैं और [START,END] की सीमा में हैं।
हम इसे START से END तक की संख्याओं को पार करके करेंगे और प्रत्येक संख्या के लिए हम जांच करेंगे कि क्या संख्या केवल 2 और 3 से विभाज्य है। यदि विभाज्य है, तो इसे विभाजित करें और इसे कम करें। यदि नहीं, तो लूप तोड़ दें। अंत में यदि संख्या को घटाकर 1 कर दिया जाता है तो उसके गुणनखंड केवल 2 और 3 होते हैं।
आइए उदाहरणों से समझते हैं।
इनपुट
START=20 END=25
आउटपुट
Numbers with only 2 and 3 as prime factors: 1
स्पष्टीकरण
Prime factors of each number: 20 = 2*2*5 21 = 3*7 22 = 2*11 23 = 1*23 24 = 2*2*2*3 25 = 5*5 Only 24 has 2 and 3 as prime factors.
इनपुट
START=1000 END=1500
आउटपुट
Numbers with only 2 and 3 as prime factors: 4
स्पष्टीकरण
1024 1152 1296 1458 are the numbers with only 2 and 3 as prime factors
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम एक पूर्णांक START और END को श्रेणी चर के रूप में लेते हैं।
-
फंक्शन टूथ्रीफैक्टर्स(इंट स्टार्ट, इंट एंड) रेंज वेरिएबल लेता है और केवल प्राइम फैक्टर के रूप में 2 और 3 के साथ संख्याओं की संख्या लौटाता है।
-
ऐसी संख्याओं के लिए प्रारंभिक चर गणना को 0 के रूप में लें।
-
लूप के लिए उपयोग कर संख्याओं की ट्रैवर्स श्रेणी। i=शुरू से i=अंत तक
-
अब प्रत्येक संख्या के लिए num=i, जबकि लूप का उपयोग करके जांचें कि क्या num%2==0, इसे विभाजित करें।
-
अगर num%3==0, इसे विभाजित करें। यदि नहीं, तो दोनों समय के लूप को तोड़ते हैं
-
अगर थोड़ी देर के बाद लूप नंबर 1 है तो गिनती बढ़ाएं।
-
सभी लूपों के अंत में काउंट की कुल संख्या होगी जिसमें केवल 2 और 4 अभाज्य गुणनखंड होंगे।
-
परिणाम के रूप में गिनती लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int twothreeFactors(int start, int end){ // Start with 2 so that 1 doesn't get counted if (start == 1) { start++; } int count = 0; for (int i = start; i <= end; i++) { int num = i; while(num>1){ // if divisible by 2, divide it by 2 if(num % 2 == 0) { num /= 2; } // if divisible by 3, divide it by 3 else if (num % 3 == 0) { num /= 3; } else //if divisible by neither 2 nor 3 break { break; } } // means only 2 and 3 are factors of num if (num == 1) { count++; } } return count; } int main(){ int START = 10, END = 20; cout <<"Numbers with only 2 and 3 as prime factors:"<< twothreeFactors(START,END); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Numbers with only 2 and 3 as prime factors:3