কম্পিউটার টিউটোরিয়াল

C++-এ প্রাকৃতিক সংখ্যার সব ডিভাইজার বের করা (সেট ২ - অপ্টিমাইজড)

একটি প্রাকৃতিক সংখ্যা দেওয়া থাকলে, তার সব ডিভাইজার (ভাজক) বের করতে হবে। 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
  1. প্রাকৃতিক সংখ্যা N-এর k-তম ছোট ভাজক বের করা (C++)

  2. প্রাকৃতিক সংখ্যার সব ভাজকের ভাজকের যোগফল খুঁজে বের করা C++-এ

  3. [1, n] রেঞ্জের সব সংখ্যার ভাজকের সংখ্যা বের করা C++-এ

  4. C++-এ সেটে রিফ্লেক্সিভ রিলেশন সংখ্যা বের করুন