1 条题解
-
0
#include<iostream> #include<cmath> using namespace std; bool isp(int x){ if(x<2) return false; if(x==2) return true; if(x%2==0) return false; for(int i=3;i*i<=x;i+=2){ if(x%i==0) return false; } return true; } int n,ans=4,cnt; void getaway(int &num,int pri){ while(num%pri==0) num/=pri; return; } int main(){ cin>>n; getaway(n,2); int sq=sqrt(n)+0.01; for(int i=3;i<=2*sq+1;i+=2){ cnt=0; if(i%4==3) getaway(n,i); else if(i%4==1){ while(n%i==0){ n/=i;cnt++; } } ans*=cnt*2+1; } if(n!=1&&n%4==1) ans*=3; cout<<ans<<endl;return 0; }
- 1
信息
- ID
- 1456
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 6
- 标签
- 递交数
- 4
- 已通过
- 4
- 上传者