हमें एक संख्या दी गई है मान लीजिए, संख्या और कार्य 1 से संख्या तक की संख्याओं की गणना करना है जो 2, 3, 4, 5, 6, 7, 8, 9 और 10 से विभाज्य हैं।
इनपुट - पूर्णांक संख्या =10000
आउटपुट − 2 से 10 तक की सभी संख्याओं से विभाज्य संख्याएँ गिनें:3
स्पष्टीकरण − 1 से 10000 तक 3 संख्याएँ हैं जो 2 से 10 तक सभी संख्याओं से विभाज्य हैं और वे हैं -
2520-: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 21, 24, 28, 30, 35, 36, 40, 42, 45, 56, 60, 63, 70, 72, 84, 90, 105, 120, 126, 140, 168, 180, 210, 252, 280, 315, 360, 420, 504, 630, 840, 1260, 2520. 5040-: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 28, 30, 35, 36, 40, 42, 45, 48, 56, 60, 63, 70, 72, 80, 84, 90, 105, 112, 120, 126, 140, 144, 168, 180, 210, 240, 252, 280, 315, 336, 360, 420, 504, 560, 630, 720, 840, 1008, 1260, 1680, 2520, 5040 7560-: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 18, 20, 21, 24, 27, 28, 30, 35, 36, 40, 42, 45, 54, 56, 60, 63, 70, 72, 84, 90, 105, 108, 120, 126, 135, 140, 168, 180, 189, 210, 216, 252, 270, 280, 315, 360, 378, 420, 504, 540, 630, 756, 840, 945, 1080, 1260, 1512, 1890, 2520, 3780.
इनपुट - पूर्णांक संख्या =20000
आउटपुट − वे संख्याएं गिनें जो 2 से 10 तक की सभी संख्याओं से विभाज्य हों − 3
स्पष्टीकरण - 1 से 10000 तक की 7 संख्याएँ हैं जो 2 से 10 तक की सभी संख्याओं से विभाज्य हैं और वे हैं - 2520, 5040, 7560, 10080, 12600, 15120 और 17640,
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
दी गई समस्या को हल करने के लिए कई दृष्टिकोण हो सकते हैं जैसे कि सरल दृष्टिकोण और कुशल दृष्टिकोण। तो आइए सबसे पहले भोले दृष्टिकोण . को देखें ।
-
संख्या दर्ज करें मान लें कि संख्या है
-
एक सरणी लें और 2 से 10 तक की सभी संख्याओं को एक निश्चित लंबाई के पूर्णांक सरणी के अंदर संग्रहीत करें जो कि 9 है।
-
अस्थायी चर लें पहले कुल संख्याओं को संग्रहीत करने के लिए गणना की जाती है और दूसरा यह जांचने के लिए ध्वज है कि संख्या विभाज्य है या नहीं।
-
लूप प्रारंभ करें I से 1 तक संख्या तक के लिए
-
लूप के अंदर, num को i और इंडेक्स को 0 पर सेट करें
-
तब तक प्रारंभ करें जब तक कि अनुक्रमणिका 9 से कम न हो, अर्थात एक सरणी का आकार
-
IF num% arr[index++] ==0 चेक करें और फिर फ्लैग को 1 के रूप में सेट करें अन्यथा फ्लैग को 0 के रूप में सेट करें
-
चेक करें कि IF ध्वज 1 है, फिर गिनती को 1 से बढ़ाएँ
-
वापसी की संख्या
-
परिणाम प्रिंट करें।
कुशल तरीका
जैसा कि हम देख सकते हैं कि संख्याओं में एक पैटर्न है जो 2 से 10 तक की सभी संख्याओं से विभाज्य है।
वह छोटी से छोटी संख्या जो 2 से 10 तक की सभी संख्याओं से विभाज्य हो, 2520 है
5 * 7 * 8 * 9 = 2520(n = 1) 5 * 7 * 8 * 9 * 2 = 5040(n = 2) 5 * 7 * 8 * 9 * 3 = 7560(n = 3) . .
जैसा कि हम देख सकते हैं कि 2520 2, 3, 4, 5, 6, 7, 8, 9, 10 से विभाज्य सभी संख्याओं का सामान्य गुणनखंड है। इसलिए, यदि हम दी गई संख्या को 2520 से विभाजित करते हैं तो हमें अपना परिणाम प्राप्त होगा। /पी>
कोड-1(बेवकूफ दृष्टिकोण)
उदाहरण
#include <bits/stdc++.h> using namespace std; int count(int num){ int count = 0; int flag=0; int index=0; int arr[9] = {2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int i = 1; i <= num; i++){ int num = i; index=0; while(index<9){ if(num % arr[index++] == 0){ flag=1; } else{ flag=0; break; } } if (flag == 1){ count++; } } return count; } int main(){ int num = 10000; cout<<"Count numbers which are divisible by all the numbers from 2 to 10 are: "<<count(num); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count numbers which are divisible by all the numbers from 2 to 10 are: 3
कोड-2(कुशल दृष्टिकोण)
उदाहरण
#include <bits/stdc++.h> using namespace std; int main(){ int num = 10000; int count = num / 2520; cout<<"Count numbers which are divisible by all the numbers from 2 to 10 are: "<<count; return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count numbers which are divisible by all the numbers from 2 to 10 are: 3