快速迭代

题目:

设 fx为x的因子个数
将f迭代下去,rin猜想任意正整数最终都会变成2。
给你一个正整数n
让你输出它在迭代过程中,第一次迭代成2的迭代次数。

输入描述: 一个正整数n
输出描述: 一个正整数,为n迭代至2的次数。

输入
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次。

 1 n = int(input())
 2 sum = 0
 3 while n!=2:
 4     cnt = 0
 5     i = 1
 6     while i*i<n:
 7         if n%i==0:
 8             cnt+=1
 9         i+=1
10     if n==i*i:
11         n=2*cnt+1
12     else:
13         n=2*cnt
14     sum+=1
15 print(sum)

猜你喜欢

转载自www.cnblogs.com/Yuuuukino/p/12290785.html
今日推荐