Description
输入一个数字,输出其约数个数。例如10就有4个约数1,2,5,10
Format
Input
一个数字N,N< =2147483647
Output
如题
Samples
输入数据 1
10
Copy
输出数据 1
4
Copy
Limitation
1s, 1024KiB for each test case.
思路
这道题其实和求约数个数之一差不多,只是数据大了点,但是我们可以发现:i为约数,n/i也为约数(特判完全平方数)。
代码见下:
#include<bits/stdc++.h>
using namespace std;
long long int d=1e7;
bool f[21474848];
long long int z[21483648],sd,g[10000000],o[10000000],kk=1;
long long int n,m,mo=1e9+7;
long long int s;
int main(){
cin>>n;
for(int i=1;i*i<=n;i++){
if(n%i==0) s+=2;
}
if(sqrt(n)==n/sqrt(n)) s--;
cout<<s;
}