BZOJ1401

http://www.lydsy.com/JudgeOnline/problem.php?id=1041

科普一下高斯素数以及复平面那一套理论https://www.bilibili.com/video/av3372382/#page=52

以及勾股数可视化 https://www.bilibili.com/video/av12133637/

#include<cstdio>
#include<cmath>
typedef long long ll;
ll x;
int ans,cnt;
int main(){
    scanf("%lld",&x);
    ans=1;
    for(register int i=2;1ll*i*i<=x;++i){
    	cnt=0;
    	while(x%i==0){
			x/=i;
			if(i%4==1)
				++cnt;
		}
		ans*=(cnt*2+1);
	}
	if(x%4==1&&x!=1)
		ans*=3;
	printf("%d\n",ans*4);
    return 0;
}

  

posted @ 2017-11-28 21:55  Stump  阅读(139)  评论(0编辑  收藏  举报