#include #include using namespace std; int GetDigit(int); bool IsPalindromicNumber(int); bool IsIwaiNumber(int); int main() { // 入力 int input; int cnt = 2; cin >> input; while (cnt <= 1000000000) { long long num = cnt * input; if (num < 1000000000) { ++cnt; continue; } if (IsIwaiNumber(num) && num % input == 0) { cout << num << endl; break; } ++cnt; } return 0; } /// /// 岩井数か判定し、返す /// /// bool IsIwaiNumber(int input) { // 奇数では回文数 + 9の岩井数の条件に当てはまらないので終了 if (GetDigit(input) % 2 == 1) { return false; } // 1桁目が9でなかったら岩井数ではないので終了 if (input % 10 != 9) { return false; } return IsPalindromicNumber(input / 10); } /// /// 整数の桁数を取得する関数 /// /// 取得したい桁数の整数 /// 整数の桁数 int GetDigit(int num) { int digit = 1; while ((num /= 10) != 0) { ++digit; } return digit; } /// /// 回文かどうか /// /// チェックしたい整数 /// 回文だったら true bool IsPalindromicNumber(int number) { vector v; while (number > 0) { // 先頭に数字の1桁目を代入 v.push_back(number % 10); number /= 10; } // 前半と後半を比較 int len = v.size(); for (int i = 0; i < len / 2; ++i) { if (v[i] != v[len - 1 - i]) { return false; } } return true; }