NC19970. [HAOI2008]圆上的整点
描述
输入描述
只有一个正整数n,n ≤ 2000 000 000
输出描述
整点个数
示例1
输入:
4
输出:
4
C++11(clang++ 3.9) 解法, 执行用时: 218ms, 内存消耗: 376K, 提交时间: 2020-10-01 19:29:37
#include<bits/stdc++.h> using namespace std; long long a,ans=1,aa; int main(){ scanf("%lld",&a),a=a*a; while(a%2==0)a/=2; for(int i=3;i*i<=a;i++) if(a%i==0){ long long tmp=0; while(a%i==0)a/=i,tmp++; if((i-1)%4==0)ans*=(tmp+1);else if((i+1)%4==0)ans*=(tmp+1)%2; } printf("%lld",ans*4); return 0; }