हमें एक संख्या num दी गई है। कार्य है 1 से num तक की रेंज में उन संख्याओं की गिनती करना जो 2, 3, 4, 5, 6, 7, 8, 9 और 10 सभी से विभाज्य हैं।
इनपुट - int num = 10000
आउटपुट - 2 से 10 तक सभी से विभाज्य संख्याओं की गिनती: 3
व्याख्या - 2520, 5040, 7560 ये तीन संख्याएं 1 से 10000 तक सभी शर्तें पूरी करती हैं।
उपयोग किया गया दृष्टिकोण (नाइव)
- 2 से 10 तक की संख्याओं की सरणी बनाएं।
- 1 से num तक प्रत्येक संख्या के लिए सभी 9 संख्याओं से विभाज्यता जांचें।
कुशल दृष्टिकोण (LCM)
2 से 10 तक की सभी संख्याओं का लघुत्तम समापवर्त्य (LCM) 2520 है।
इसलिए 2520 के गुणक ही सभी शर्तें पूरी करते हैं। उत्तर है: num / 2520
उदाहरण (नाइव दृष्टिकोण)
#include <bits/stdc++.h>
using namespace std;
int count(int num) {
int cnt = 0;
int arr[9] = {2,3,4,5,6,7,8,9,10};
for (int i = 1; i <= num; i++) {
bool flag = true;
for (int j = 0; j < 9; j++) {
if (i % arr[j] != 0) { flag = false; break; }
}
if (flag) cnt++;
}
return cnt;
}
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
उदाहरण (कुशल दृष्टिकोण)
#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