একটি পূর্ণসংখ্যা দেওয়া থাকলে, এর অঙ্কগুলো রি-অ্যারেঞ্জ করে এমন একটি সংখ্যা বানাতে হবে যা মূল সংখ্যা দিয়ে বিভাজ্য।
উদাহরণ
ইনপুট − number = 100035
আউটপুট − Rearrangement ... is: 300105
ব্যাখ্যা − 300105, 100035 দিয়ে বিভাজ্য।
ইনপুট − number = 1000035
আউটপুট − Rearrangement ... is: 3000105
ইনপুট − number = 28
আউটপুট − Rearrangement ... is: -1
ব্যাখ্যা − 82, 28 দিয়ে বিভাজ্য নয়।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
ইনপুট
numberনিন।Rearrangement(int number)ফাংশন কল করুন।ফাংশনে
vectorদিয়ে অঙ্ক ফ্রিকোয়েন্সি স্টোর করুন।vec(10,0) total_count(number, vec)ফাংশন দিয়ে ফ্রিকোয়েন্সি বের করুন।২ থেকে ৯ পর্যন্ত গুণ করে
temp = number * iবের করুন।temp-এর ফ্রিকোয়েন্সিvec_2-তে স্টোর করুন।যদি
vec == vec_2হয়,tempফেরত দিন, অন্যথায় -1।
উদাহরণ কোড
#include <bits/stdc++.h> using namespace std; void total_count(int number, vector&vec_3){ while(number){ vec_3[number % 10]++; number = number / 10; } } int Rearrangement(int number){ vector vec(10, 0); total_count(number, vec); for(int i = 2; i < 10; i++){ int temp = number * i; vector vec_2(10, 0); total_count(temp, vec_2); if(equal(vec.begin(), vec.end(), vec_2.begin())){ return temp; } } return -1; } int main(){ int number = 100035; cout << "Rearrangement of a number which is also divisible by it is: " << Rearrangement(number); return 0; }
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
Rearrangement of a number which is also divisible by it is: 300105