#include<stdio.h>
int book[10100],bk[101010],b[101010];
int main()
{
int i,j,n,k=0;
scanf("%d",&n);
for(i=2;i<=n;i++)//素数打表
{
if(bk[i]==0)
{
book[k++]=i;
for(j=i*2;j<=n;j=j+i)
{
bk[j]=1;
}
}
}
int cnt=0;
for(i=0;i<k;i++)
{
if(n%book[i]==0)//算出这个数有多少素数因子
{
cnt++;
while(n%book[i]==0)
{
n=n/book[i];
b[cnt]++;
}
}
}
int s=1;
for(i=1;i<=cnt;i++)
{
s=s*(b[i]+1);//公式
}
printf("%d",s);
}
找一个数的约数-非暴力
最新推荐文章于 2022-04-10 19:29:25 发布