কম্পিউটার

C++ এ ন্যূনতম ফ্যাক্টরাইজেশন


ধরুন আমাদের একটি ধনাত্মক পূর্ণসংখ্যা x আছে, আমাদেরকে সবচেয়ে ছোট ধনাত্মক পূর্ণসংখ্যা b বের করতে হবে যার প্রতিটি অঙ্কের গুণফল x এর সমান। যদি আমাদের কাছে এমন কোন উত্তর না থাকে তাহলে 0 ফেরত দিন।

সুতরাং, যদি ইনপুট 48 এর মত হয়, তাহলে আউটপুট হবে 68

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ret :=0, mul :=1

  • যদি একটি <2, তাহলে:

    • একটি ফেরত দিন

  • আরম্ভ করার জন্য i :=9, যখন i>=2, আপডেট করুন (i 1 দ্বারা কম করুন), −

    • যখন একটি মোড i 0 এর সমান, −

      করুন
      • ret :=i * mul + ret

      • mul :=mul * 10

      • a :=a / i

  • রিটার্ন (যদি a <2 এবং ret

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
class Solution {
public:
   int smallestFactorization(int a) {
      lli ret = 0;
      lli mul = 1;
      if (a < 2)
         return a;
      for (lli i = 9; i >= 2; i--) {
         while (a % i == 0) {
            ret = i * mul + ret;
            mul *= 10;
            a /= i;
         }
      }
      return a < 2 && ret < INT_MAX ? ret : 0;
   }
};
main(){
   Solution ob;
   cout << (ob.smallestFactorization(48));
}

ইনপুট

48

আউটপুট

68

  1. C++ এ গেম ভি জাম্প করুন

  2. C++ এ ন্যূনতম নাইট মুভ

  3. C++ এ চারটি বিভাজক

  4. C++ এ ন্যূনতম পথের যোগফল