একটি প্রাকৃতিক সংখ্যা দেওয়া থাকলে, তার সব ডিভাইজার (ভাজক) বের করতে হবে। O(√n) সময়ে সমাধান করা যায়।
পদ্ধতি
- সংখ্যা n ইনপুট নিন।
- ১ থেকে √n পর্যন্ত লুপ চালান।
- যদি n % i == 0 হয়, তবে i এবং n/i দুটোই ডিভাইজার।
- যদি i == n/i হয় (পারফেক্ট স্কয়ার), একবারই প্রিন্ট করুন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
void findDivisors(int n) {
for (int i = 1; i <= sqrt(n); i++) {
if (n % i == 0) {
if (n / i == i) cout << i << " ";
else cout << i << " " << n/i << " ";
}
}
cout << endl;
}
int main() {
findDivisors(65);
return 0;
}
আউটপুট
1 65 5 13