- #Printable chars are your ally.
- #num = 29th prime-number. collatz-conjecture(num)
- 先写脚本求出第29个素数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| def max_prime_number(max_num): """ 求max_num内最大的质数 """ i = max_num while True: i-=1 mid = int(i/2) + 1 for j in range(2,mid): if i % j == 0: break else: return i def find_prime_number(num): """ 求第num个质数 """ flag = 0 i = 1 while True: i+=1 mid = int(i/2) + 1 for j in range(2,mid): if i % j == 0: break else: flag += 1 if flag == num: return i if __name__ == "__main__": p_num = find_prime_number(29) p2 = max_prime_number(10) print(p2) print(p_num)
|
- 写脚本实现科拉茨猜想,并过虑可打印字符
- 任取一个正整数,如果这个数是偶数,则除以二。如果是奇数,乘以3再加1。重复上述步骤,最后起始数都会变成1时停止。这就是著名的科拉茨猜想
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| import string my_printable = string.printable
def is_printable(i): """ 判断输入的数字是否能转换成可打印字符,是则返回对应字符 """ try: str_i = chr(i) except: str_i = None if str_i != None and my_printable.find(str_i) != -1: return str_i else: return None def collatz_conjecture(num): i = num char_list = [] str_i = is_printable(i) if str_i != None: char_list.append(str_i) while i != 1: if i % 2 == 1: i = i * 3 + 1 else: i = i // 2 str_i = is_printable(i) if str_i != None: char_list.append(str_i) return "".join(char_list) def main(): num = 109 my_str = collatz_conjecture(num) print(my_str) if __name__ == "__main__": main()
|