//(A + B)(A - B) = N -> よく分からん //Bを固定してAを動かす気持ちと関連して、A = B + n (n > 0)とおきたい. //2Bn + n^2 = N //・2B + 1 = N, n = 1 ⇔ B % 2 == 1 and B >= 3 //・4B + 4 = N, n = 2 ⇔ B % 4 == 0 and B >= 8 //で、n >= 3についてはこの2つに帰着できて、これが存在条件. #include #include using namespace std; int main() { string s; cin >> s; if (s.length() == 1) { if (s[0] == '3' || s[0] == '5' || s[0] == '7' || s[0] == '8' || s[0] == '9') { cout << 1 << endl; } else { cout << -1 << endl; } } else { int mod4 = 0; for (int i = 0; i < s.length(); i++) { mod4 *= 10; mod4 += s[i] - '0'; mod4 %= 4; } if (mod4 != 2) { cout << 1 << endl; } else { cout << -1 << endl; } } return 0; }