首页 > 试题广场 >

rin和快速迭代

[编程题]rin和快速迭代
  • 热度指数:518 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
”数论真的太好玩了喵~“——hoshizora rin
rin最近喜欢上了数论。
然而数论实在太复杂了,她只能研究一些简单的问题。
这天,她在研究正整数因子个数的时候,想到了一个“快速迭代”算法。设 的因子个数,将 迭代下去,rin猜想任意正整数最终都会变成
例如:
她希望你帮她验证一下。她会给你一个正整数 ,让你输出它在迭代过程中,第一次迭代成 的迭代次数。


输入描述:
一个正整数  


输出描述:
一个正整数,为  迭代至  的次数。
示例1

输入

12

输出

4

说明

12的因子:1,2,3,4,6,12。共6个。
6的因子:1,2,3,6。共4个。
4的因子:1,2,4。共3个。
3的因子:1,3。共2个。
12 → 6 → 4 → 3 → 2 , 故迭代了4次。

备注:
#include <stdio.h>
int time=0;
long long countin(long long n){
    int count=0;
    for(long long i=1;i*i<=n;i++){
        if(n%i==0) {
        if(i*i!=n)count+=2;
        else count++;
    }
    }
    time++;
    if(count!=2){
    return countin(count);
    }
    else {
    return time;
    }
}
int main() {
    long long n;
    scanf("%lld",&n);
    printf("%lld",countin(n));
    return 0;
}简单的递归
发表于 2025-12-25 23:15:01 回复(0)