Project Euler:Problem 52 Permuted multiples

来源:互联网 发布:pop smtp 端口 编辑:程序博客网 时间:2024/05/21 11:17

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;}


0 0