//if(mp.find(N-it->first)!=mp.end()) //不是说没有访问map<int,bool> 的 map[i] ,map[i]就是false //双for超时了

#include<iostream>
#include<map>
using namespace std;

int main(void)
{
    int N;
    cin>>N;
    int r = (int)sqrt(N);
    
    int count=0;
    
    if(pow(r,2)<N) r+=1;
    
    map<int,bool> mp;
    
    for(int i=1;i<=r;i++) mp[pow(i,2)]==true;
    
    for(map<int,bool>::iterator it=mp.begin();it!=mp.end();it++)
        if(mp.find(N-it->first)!=mp.end()) 
            count++;

    if(pow(r,2)==N) count++;
    cout<<4*count<<endl;;
    
    return 0;
    
}