We give a number of integer type, assuming it is number. The task is to rearrange the digits of number so that the rearranged numbers are also divisible by the given number.
Input - int number = 100035
Output - Rearrange The last number that can be divided by number is: 300105
Explanation - We are given an integer number, which is 100035. Now, the task is to rearrange these given numbers so that the formed number is divisible by number 100035. So after rearranging the numbers we get 300105 which is divisible by the number 100035.
Input - int number = 1000035
Output - The rearranged number is also divisible by it: 3000105
Explanation - We are given an integer number "number", which is 1000035. Now, the task is to rearrange these given numbers so that the number formed is divisible by 1000035. So after rearranging the numbers we get 3000105 which is divisible by the number 1000035.
Input - int number = 28
Output - The rearranged number is also divisible by it: -1
Explanation - We are given an integer number "number", which is 28. Now, the task is to rearrange these given numbers so that the number formed is divisible by 28. So after rearranging the numbers we get 82 which is not divisible by the number 28 so the output is -1.
Enter a variable of integer type, assuming it is number, and pass the data to the function Rearrangement(number).
In the function Rearrangement(number)
Create a vector variable that stores an integer type variable, assuming it is vec(10, 0).
Call the function total_count(number, vec) and pass number and vec as parameters to the function.
Start with a loop from i to 2 until i is less than 10. Inside the loop, set temp to number * i.
Create a vector variable that stores an integer type variable, assuming it is vec_2(10, 0).
Call the function total_count(number, vec_2) and pass number and vec_2 as parameters to the function.
Check if equal(vec.begin(), vec.end(), vec_2.begin()), then return temp. Otherwise, -1 is returned.
#include<bits/stdc++.h> using namespace std; void total_count(int number, vector<int> &vec_3){ while(number){ vec_3[number % 10]++; number = number / 10; } } int Rearrangement(int number){ vector<int> vec(10, 0); total_count(number, vec); for(int i = 2; i < 10; i++){ int temp = number * i; vector<int> 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
The above is the detailed content of In C++, rearrange a number that can also be rearranged by it. For more information, please follow other related articles on the PHP Chinese website!