0.说明
每五个题目写作一篇writeup,第一行对应解题笔记(一)……
1.循环
题目描述
给出一个循环公式,对于一个整数n,当n为奇数时,n=3n+1,当n为偶数时,n=n/2,如此循环下去直到n=1时停止。
现要求对两个整数i = 900、j = 1000,输出i、j之间(包括i、j)的所有数进行上述循环时的最大循环次数(包括n和1)。
格式:CTF{xxx}
分析
这个题目比较简单,只需要注意总循环次数是从1开始而不是0开始即可,下面是代码
total_time = 0
for num in range(900, 1000 + 1):
tmp_time = 1#循环次数从1开始
print('num' + str(num))
while True:
if num == 1:
total_time = max(total_time, tmp_time)
break
if num % 2 == 0:#偶数
num = num / 2
tmp_time += 1
continue
if num % 2 == 1:#奇数
num = 3 * num + 1
tmp_time += 1
continue
print(total_time)
2.小球下落
//TODO
3.求底运算
题目描述
已知K ^ N = P, 给定N为7,和P为4357186184021382204544,求K。
Flag格式:CTF{xxx}
分析
这个题实在是没什么好说的,初中数学…计算pow(P,1/7)即可,python会自动自动计算出一个浮点数的结果,但是考虑到其他语言可能不会计算出相同的结果,所以我们手动取整就行了。
4.普里姆路径
//TODO
5.大数模运算
//TODO