Project Euler 206

二乗すると「1_2_3_4_5_6_7_8_9_0」の形となるような唯一の正整数を求めよ。ただし、「_」は1桁の数である。

こんなコードを書いてしまってすいません。
1と2の間が9だってのが悪質です。

#include <iostream>
#include <deque>
using namespace std;

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

int main(){

	deque<int> n;
	bool f;

	long long i = 150000000LL;

	for( ; i<150000000LL ; i++){
		//if(i%1000000==0) cout << i << " " << i*i << endl;
		f = true;
		n = integerDigits(i*i);

		for(int j=8 ; j>=0 ; j--){
			if(n[j*2] != j+1){
				f = false;
				break;
			}
		}
		if(f){
			cout << i << "0 " << i*i << "00" << endl;
			break;
		}
	}
}