Project Euler 52

125874を2倍すると251748となる. これは元の数125874と同じ数を含む.

2x, 3x, 4x, 5x, 6xがxと同じ数を含むような最小の正整数xを求めよ.
#include <iostream>
#include <deque>
using namespace std;


// xを各桁ごとにばらしてdequeに挿入する。
deque<int> integerDigit(int x){
	deque<int> arr;
	while(x!=0){
		arr.push_front(x%10);
		x/=10;
	}
	return arr;
}

// xがyに含まれているかどうか判定する。
// x⊂y
bool isInclude(deque<int> x, deque<int> y){
	bool isMatch;

	for(int i=0; i<(signed)x.size() ; i++){
		isMatch = false;
		for(int j=0 ; j<(signed)x.size() ; j++){
			if(x[i]==y[j]){
				isMatch = true;
				break;
			}
		}
		if(!isMatch) return false;
	}
	return true;
}

int main(){
	deque<int> arr1,arr2;
	arr1.clear();
	arr2.clear();
	bool isMatch;
	
	for(int i=1 ; i<1000000 ; i++){
		arr1 = integerDigit(i);

		isMatch = true;
		arr2.clear();

		for(int j=2 ; j<=6 ; j++){
			arr2 = integerDigit(i*j);
			if( !isInclude(arr1, arr2) ){
				isMatch = false;
				break;
			}
		}
		if(isMatch) cout << i << endl;
	}
	
	cout << "Finish" << endl;
	int end;
	cin >> end;
}

実は不完全です。問題文だけからではわかりづらいですが、「同じ数を含む」は「並べ替えて同じになる」ぐらいの意味として捉えたほうがいいかも。
僕のプログラムを実行すると、9と0でできた数列の中に1つだけ答えが紛れています。