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

অ্যারে থেকে ২, ৩, ৫ দ্বারা বিভাজ্য সর্বোচ্চ সংখ্যা বের করা (C++)


সমস্যা বিবরণ

একটি অ্যারে দেওয়া আছে যাতে শুধু একক অঙ্ক (0-9) রয়েছে। আমাদের কাজ হল এই অঙ্কগুলো দিয়ে ২, ৩ এবং ৫ — তিনটির দ্বারা বিভাজ্য সর্বোচ্চ সংখ্যা বের করা।

উদাহরণ

ইনপুট: arr[] = {1, 0, 5, 2}
আউটপুট: 510
ব্যাখ্যা: 510, ২, ৩, ৫ দ্বারা বিভাজ্য।

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

২ এবং ৫ দ্বারা বিভাজ্য হলে সংখ্যাটি ১০ দ্বারা বিভাজ্য হবে, তাই অ্যারেতে ০ থাকতে হবে। ০কে শেষে রেখে বাকি অঙ্কগুলো নিম্নক্রমে সাজাতে হবে যেন ৩ দ্বারা বিভাজ্য হয়।

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

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

string largestMultipleOfThree(vector<int>& d) {
    vector<vector<int>> mod(3);
    int sum=0;
    for(int x:d){ mod[x%3].push_back(x); sum+=x; sum%=3; }
    if(sum){
        if(mod[sum].empty()){
            int rem=3-sum;
            if(mod[rem].size()<2) return "";
            mod[rem].pop_back(); mod[rem].pop_back();
        }else mod[sum].pop_back();
    }
    string ret;
    for(int i=0;i<3;i++) for(int x:mod[i]) ret+=to_string(x);
    sort(ret.begin(), ret.end(), greater<>());
    if(!ret.empty() && ret[0]=='0') return "0";
    return ret;
}

int main() {
    vector<int> v={7,2,0,8};
    sort(v.begin(), v.end(), greater<>());
    if(v.back()!=0) cout<<"Not Possible";
    else cout<<largestMultipleOfThree(v);
    return 0;
}

আউটপুট

870
  1. n-র সन्नিকট এবং m দিয়ে বিভাজ্য সংখ্যা খুঁজে বের করা C++-তে

  2. a^b-র সন্নিকট x-এর গুণিতক খুঁজে বের করা C++-তে

  3. সি++ প্রোগ্রাম: সিলিন্ডারের পরিসীমা (Perimeter) নির্ণয়

  4. LCM এবং HCF দিয়ে অন্য সংখ্যা বের করা (C++)