hdu 3835 – R(N)

hdu 3835 – R(N)

#define LOCAL
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
#ifdef LOCAL
       freopen("input.txt","r",stdin);
       freopen("output.txt","w",stdout);
#endif
    
    
    long n,i,t,count;
    while(cin>>n)
    {
            count=0;
            for(i=0;i<=sqrt(n);i++)
            {
                    if(fmod(sqrt(n-i*i),1)==0)   //用fmod()效率不高,建议换种判定方法 
                           count++;                
            }
            if(fmod(sqrt(n),1)==0)    //数学不好,一个公式试了半天 。。。 
                  count=4*count-4;
            else
                  count=4*count;
            cout<<count<<endl;
    }
    return 0;
}

发表回复