Div.2 A : System of Equations

問題概要

0\leq a,b の整数 a, b のうち、a^2+b=n, a+b^2=m を満たす組み合わせの数を答えよ。

考え方

0\leq n,m\leq1000 と範囲が狭いのと、0\leq a,b という条件から、0\leq a,b\leq1000 の範囲で単純に確認するのが楽。変に数学的解法を探らない。

コード

#include <iostream>
using namespace std;
int main(void) {
  int n, m, ret = 0;
  cin >> n >> m;
  for (int a = 0; a <= 1000; ++a) for (int b = 0; b <= 1000; ++b)
    if (a * a + b == n && a + b * b == m) ++ret;
  cout << ret << "\n";
  return 0;
}