🌈🌈😄😄
欢迎来到茶色岛独家岛屿,本期将为大家揭晓阶乘约数,做好准备了么,那么开始吧
🌲🌲🐴🐴
目录
问题描述:
举例分析:
例如:180=2*2*3*3*5=2^2*3^2*5^1
180的约数个数是(1+2)*(1+2)*(1+1)=18
解决方案:
代码如下:
#include<stdio.h>
#define NUM 100
int a[101];
void separate(int num)
{
int i=2;
while(1)
{
if(num%i==0)
{
a[i]++;
num/=i;
if(num==1)
return;
}
else i++;
}
}
int main()
{
int i;
long long sum=1;
//拆开
for(i=2;i<=NUM;i++)
{
separate(i);
}
//合住
for(i=2;i<=NUM;i++)
{
if(a[i])
sum*=1+a[i];
}
printf("%lld",sum);
return 0;
}