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

C++-এ সংখ্যার অঙ্ক রি-অ্যারেঞ্জ করে নিজের সাথে ভাগযোগ্য সংখ্যা বানান


একটি পূর্ণসংখ্যা দেওয়া থাকলে, এর অঙ্কগুলো রি-অ্যারেঞ্জ করে এমন একটি সংখ্যা বানাতে হবে যা মূল সংখ্যা দিয়ে বিভাজ্য।

উদাহরণ

ইনপুট − 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
  1. C++-এ একটি সংখ্যা ৪১ দ্বারা বিভাজ্য কিনা তা যাচাই করা

  2. C++-এ একটি সংখ্যা ২৩ দ্বারা বিভাজ্য কিনা তা যাচাই করা

  3. C++ প্রোগ্রাম: বড় সংখ্যা ২০ দিয়ে বিভাজ্য কিনা চেক (স্ট্রিং ইনপুট)

  4. C++-এ CHAR_BIT