স্মার্ট নম্বর হলো যেটির কমপক্ষে তিনটি ভিন্ন প্রাইম ফ্যাক্টর থাকে।
সিরিজ: ৩০, ৪২, ৬০, ৬৬, ৭০, ৭৮, ...
উদাহরণ
ইনপুট: 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