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

একটি সংখ্যার ভাজকগুলোর মধ্যে সবচেয়ে বড় Good Number বের করা (C++)


সমস্যা বিবরণ

একটি সংখ্যা N দেওয়া আছে। আমাদের কাজ হল N-এর ভাজকগুলোর মধ্যে সবচেয়ে বড় Good Number বের করা।

Good Number: যেটির প্রতিটি ডিজিট তার ডানপাশের সব ডিজিটের যোগফলের চেয়ে বড়। যেমন 732: 7>3+2, 3>2।

উদাহরণ

ইনপুট: N = 15
আউটপুট: 15
ব্যাখ্যা: 15-এর ভাজক: 1,3,5,15। সবচেয়ে বড় Good Number 15।

সমাধানের পদ্ধতি

N-এর সব প্রাইম ফ্যাক্টরের গুণফলই সবচেয়ে বড় Good Number। কারণ প্রাইম ফ্যাক্টরগুলোর গুণফল সব ভাজক তৈরি করে এবং সেটিই সর্বোচ্চ হয়।

প্রোগ্রাম উদাহরণ

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

int findLargestGoodNumber(int n) {
    vector<int> pf;
    int x=n;
    for(int i=2;i*i<=n;i++)
        if(x%i==0){
            pf.push_back(i);
            while(x%i==0) x/=i;
        }
    if(x>1) pf.push_back(x);
    int ans=1;
    for(int p:pf) ans*=p;
    return ans;
}

int main() {
    cout << findLargestGoodNumber(28); // 14
    return 0;
}

আউটপুট

14
  1. সি++-এ টার্নারি অপারেটর ব্যবহার করে সর্বোচ্চ সংখ্যা বের করার প্রোগ্রাম

  2. অনন্ত সিকোয়েন্সে একটি সংখ্যা আছে কিনা চেক করা (C++)

  3. দেওয়া অঙ্কগুলো দিয়ে গঠিত সর্বোচ্চ সংখ্যা খুঁজে বের করা C++-তে

  4. C++ প্রোগ্রাম: স্ট্রিংয়ের পারমুটেশন সংখ্যা বের করা