问题描述
果老师最近喜欢上了数论。
然而数论实在太复杂了,他只能研究一些简单的问题。
这天,他在研究正整数因子个数的时候,想到了一个“快速迭代”算法。 设 为 的因子个数,将 迭代下去,果老师猜想任意正整数最终都会变成
例如:,,,
他希望你帮他验证一下。她会给你一个正整数 ,让你输出它在迭代过程中,第一次迭代成 的迭代次数。
输入格式
一个正整数
输出格式
一个正整数,为 迭代至 的次数。
样例输入
12
样例输出
4
#include<bits/stdc++.h>
using namespace std;
long long num(long long n){
long long count=2;
for(long long i=2;i<=sqrt(n);i++){
if (n%i==0){
if(i==sqrt(n)&&n/i==i)
count++;
else
count+=2;
}
}
return count;
}
int main(){
long long n;
cin>>n;
long long cnt=0;
while(n>2||cnt==0){
n=num(n);
cnt++;
}
cout<<cnt;
}