हमें रेंज को परिभाषित करने के लिए दो संख्याएं START और END प्रदान की गई हैं। लक्ष्य उन संख्याओं को ढूंढना है जिनके केवल 2 और 3 अभाज्य गुणनखंड हों और जो रेंज [START,END] में हों।
हम इसे START से END तक संख्याओं को पार करके और प्रत्येक संख्या के लिए जांचेंगे कि क्या संख्या केवल 2 और 3 से विभाज्य है। यदि विभाज्य है, तो इसे विभाजित करें और कम करें। यदि नहीं, तो लूप तोड़ें। अंत में यदि संख्या 1 तक कम हो जाती है तो इसके केवल 2 और 3 गुणनखंड हैं।
उदाहरण से समझते हैं
इनपुट
START=20 END=25
आउटपुट
केवल 2 और 3 अभाज्य गुणनखंड वाली संख्याएं: 1
व्याख्या
प्रत्येक संख्या के अभाज्य गुणनखंड: 20 = 2*2*5 21 = 3*7 22 = 2*11 23 = 1*23 24 = 2*2*2*3 25 = 5*5 केवल 24 के 2 और 3 अभाज्य गुणनखंड हैं।
इनपुट
START=1000 END=1500
आउटपुट
केवल 2 और 3 अभाज्य गुणनखंड वाली संख्याएं: 4
व्याख्या
1024 1152 1296 1458 केवल 2 और 3 अभाज्य गुणनखंड वाली संख्याएं हैं।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम रेंज चर के रूप में पूर्णांक START और END लेते हैं।
फ़ंक्शन twothreeFactors(int start, int end) रेंज चर लेता है और केवल 2 और 3 अभाज्य गुणनखंड वाली संख्याओं की संख्या लौटाता है।
प्रारंभिक चर count को 0 से आरंभ करें ऐसी संख्याओं के लिए।
फॉर लूप का उपयोग करके संख्याओं की रेंज को पार करें। i=start से i=end
अब प्रत्येक संख्या num=i के लिए, व्हाइल लूप का उपयोग करके जांचें कि num%2==0 है या नहीं, तो इसे विभाजित करें।
यदि num%3==0, तो इसे विभाजित करें। यदि दोनों से नहीं तो व्हाइल लूप तोड़ें।
यदि व्हाइल लूप के बाद num 1 है तो काउंट बढ़ाएं।
सभी लूप के अंत में काउंट में केवल 2 और 3 अभाज्य गुणनखंड वाली कुल संख्या होगी।
काउंट को परिणाम के रूप में लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int twothreeFactors(int start, int end){ // 2 से शुरू करें ताकि 1 न गिना जाए if (start == 1) { start++; } int count = 0; for (int i = start; i <= end; i++) { int num = i; while(num>1){ // यदि 2 से विभाज्य है, तो 2 से विभाजित करें if(num % 2 == 0) { num /= 2; } // यदि 3 से विभाज्य है, तो 3 से विभाजित करें else if (num % 3 == 0) { num /= 3; } else //यदि न तो 2 और न ही 3 से विभाज्य है तो ब्रेक करें { break; } } // इसका मतलब केवल 2 और 3 ही num के गुणनखंड हैं if (num == 1) { count++; } } return count; } int main(){ int START = 10, END = 20; cout <<"केवल 2 और 3 अभाज्य गुणनखंड वाली संख्याएं:"<< twothreeFactors(START,END); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
केवल 2 और 3 अभाज्य गुणनखंड वाली संख्याएं: 3