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

সি++-এ n-তম স্মার্ট নম্বর (Smart Number) বের করা

স্মার্ট নম্বর হলো যেটির কমপক্ষে তিনটি ভিন্ন প্রাইম ফ্যাক্টর থাকে।

সিরিজ: ৩০, ৪২, ৬০, ৬৬, ৭০, ৭৮, ...

উদাহরণ

ইনপুট: N = 25 → আউটপুট: 174

অ্যালগরিদম

  • N ইনিশিয়ালাইজ করুন।
  • isPrime() ফাংশন লিখুন।
  • isSmartNumber(): প্রাইম ফ্যাক্টর গণনা করুন, ৩টি হলে true।
  • ৩০ থেকে শুরু করে লুপ চালিয়ে N-তম স্মার্ট নম্বর খুঁজুন।

সি++ ইমপ্লিমেন্টেশন

#include <bits/stdc++.h>
using namespace std;

bool isPrime(int n) {
    if (n < 2) return false;
    for (int i = 2; i * i <= n; i++) if (n % i == 0) return false;
    return true;
}

bool isSmartNumber(int n) {
    int count = 0;
    for (int i = 2; i < n; i++) {
        if (n % i == 0 && isPrime(i)) count++;
        if (count == 3) return true;
    }
    return false;
}

int getNthSmartNumber(int n) {
    int count = 0, i = 30;
    while (true) {
        if (isSmartNumber(i)) count++;
        if (count == n) return i;
        i++;
    }
}

int main() {
    int N = 25;
    cout << getNthSmartNumber(N) << endl; // 174
    return 0;
}

আউটপুট

174
  1. Frugal সংখ্যা চেক করা (C++)

  2. C++ দিয়ে পেন্টাটপ (Pentatope) সংখ্যা বের করা

  3. সি++-এ নাম্বার অফ এনক্লেভস (Number of Enclaves)

  4. C++-এ অ্যাডাম সংখ্যা (Adam Number) চেক করার পদ্ধতি