其实这个题目完全可以暴力解决
直接附代码,毕竟签到题
#include<stdio.h>
#include<math.h>
long long f(long long n)
{
long long sum=0;
for(long long i=1;i<=sqrt(n*1.0);i++) //自行百度为啥可以开根号,i记得用long long ,否则会爆
{
if(n%i==0)
if(i*i!=n) //若不等说明i*另外一个属=n,所以+2
sum+=2;
else //如果i*i=n说明只能多一个因数
sum++;
}
return sum;
}
int main()
{
long long n;
int sum=0;
scanf("%lld",&n);
while(n!=2)
{
sum++;
n=f(n);
}
printf("%d\n",sum);
return 0;
}
京公网安备 11010502036488号