#include<iostream>
#include<cmath>
using namespace std;
const int MAX_N = (1 << 16);

bool square[MAX_N] = {false};

int main(){
    for(int i = 1; i * i < MAX_N; i++){
        square[i * i] = true;
    }
    int n;
    while(cin >>n){
        if(n == 0) break;

        int cnt = 0, tmp;

        for(int i = 0; ; i++){
            tmp = n - (i * i);
            if(tmp < i * i) break;

            for(int j = i; ; j++){
                tmp = n - (i * i + j * j);
                if(tmp < j * j) break;

                for(int k = j; ; k++){
                    int tmp = n - (i * i + j * j + k * k);
                    if(tmp < k * k) break;

                    if(square[tmp]) cnt++;
                }
            }
        }
        cout <<cnt <<endl;
    }
    return 0;
}