题目传送门
题目大意:
题面说得很简单了
思考过程:
这题让我彻底蒙圈了。
具体做法:
用到的知识太过深奥,我肯定讲不清楚,请看这个视频
代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n;
scanf("%lld",&n);
n=n*n;
int now=2;
long long ans=1;
while(n!=1)
{
if(n%now!=0) { now++;continue; }
int cnt=0;
while(n%now==0)
{
n/=now;
cnt++;
}
if(now%2==0) { now++;continue; }
else if(now%4==1)
ans*=cnt+1;
else
if(cnt%2) { ans=0;break; }
now++;
}
printf("%lld\n",ans*4);
return 0;
}