ধরুন আমাদের একটি ধনাত্মক পূর্ণসংখ্যা 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