首页 > 试题广场 >

rin和快速迭代

[编程题]rin和快速迭代
  • 热度指数:1645 时间限制: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次。

备注:
头像 bnnpuu
发表于 2020-02-04 18:34:03
#include <bits/stdc++.h> using namespace std; long long n; long long sum; int a[1000005]; int main(){ cin >> n; while (n != 2){ 展开全文
头像 HandsomeWu
发表于 2020-02-04 20:31:11
其实这个题目完全可以暴力解决直接附代码,毕竟签到题 #include<stdio.h> #include<math.h> long long f(long long n) { long long sum=0; for(long long i=1;i<= 展开全文
头像 gsrkq
发表于 2026-04-26 15:23:06
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); whil 展开全文
头像 RogeAustine
发表于 2025-12-04 10:04:48
// 用一个便于理解的思路来解这一道题吧 // 一个数n如果可以被k整除,那么在计算因子个数时,n/k一定也是它的因子 // 也就是从1遍历到sqrt(n),最后如果是平方根的话,就减1 // 遍历时i的类型必须为ll这个 #include <iostream> #include &l 展开全文
头像 Drink0318
发表于 2025-12-20 15:52:20
import sys def countFactor(num): count=2 for i in range(2,int(num**0.5)+1): #若i为num的因子,则num/i同样为其因子,所以因子数加2 if num%i==0: 展开全文
头像 安u
发表于 2020-02-12 12:03:28
(牛客第一场)E.rin和快速迭代 链接 设为的因子个数,将迭代下去,任意正整数都会变成2。 对于一个比较大的数而言,它的因子数,通常远远小于这个数本身,所以暴力求解时间复杂度也不高,迭代几次往往就能求出答案。 #include <iostream> #include <cmat 展开全文
头像 cold_water
发表于 2026-03-13 13:47:28
import java.util.Scanner; import java.util.ArrayList; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] 展开全文
头像 星璇Xx
发表于 2026-05-16 20:49:03
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll fx(ll a){ ll num = 0; for(ll i=1 ; i*i <= a ; i++){ if(i*i == 展开全文
头像 沧浪之歌
发表于 2026-04-26 09:32:27
#include <stdio.h> #include <math.h> long long func(long long x) { long long root = sqrt(x), result = 0; for (long long i = 1; i 展开全文
头像 SamJasper
发表于 2026-02-23 20:36:21
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long n = sc 展开全文