It can be seen that the number, 125874, and its double, 251748, contain exactly the same digits, but in a different order.
Find the smallest positive integer, x, such that 2x, 3x, 4x, 5x, and 6x, contain the same digits.
#include <iostream>
#include <string>
#include <map>
#include <vector>
using namespace std;
map<int, int> cd(int n)
{
map<int, int>mp;
while (n)
{
mp[n%10]++;
n /= 10;
}
return mp;
}
bool ok(int n)
{
int num = n;
if (cd(n) == cd(2 * n))
{
if (cd(n) == cd(3 * n))
{
if (cd(n) == cd(4 * n))
{
if (cd(n) == cd(5 * n))
{
if (cd(n) == cd(6 * n))
return true;
}
}
}
}
return false;
}
int main()
{
for (int i = 1; i < 1000000; i++)
{
if (ok(i))
{
cout << i << endl;
break;
}
}
system("pause");
return 0;
}