def f(m,n) return m**4+n**4+2*n*n*m*m end hs={} 100000.times{|i| hs[i*i]=0 } n0=gets.to_i n0=n0*n0 m=2 ans=0 while m**4<=n0 do 1.upto(m-1){|n| c=f(m,n) break if c>n0 next if m.gcd(n)!=1 || (m-n)%2==0 ans+=2 if n0%c==0 && hs.member?(n0/c) } m+=1 end puts ans