日々精進

aikoと旅行とプログラミング

【AOJ 1241】Lagrange's Four-Square Theorem

問題

Lagrange's Four-Square Theorem | Aizu Online Judge

方針

  • 全部探索する.

コード

#include <iostream>

using namespace std;

signed main(){
  int n;

  while(cin >> n, n){
    int cnt = 0;
    for(int i = 1 ; i * i <= n ; i++){
      if(i*i == n) cnt++;
      for(int j = i ; j * j <= n ; j++){
        if(i*i + j*j == n) cnt++;
        for(int k = j ; k * k <= n ; k++){
          if(i*i + j*j + k*k == n) cnt++;
          for(int l = k ; l * l <= n ; l++){
            if(i*i + j*j + k*k + l*l == n) cnt++;
          }
        }
      }      
    }

    cout << cnt << endl;
  }
   
}