欧拉计划 52
来源:互联网 发布:网络言情小说女作家 编辑:程序博客网 时间:2024/04/30 14:27
125874和它的二倍,251748, 包含着同样的数字,只是顺序不同。
找出最小的正整数x,使得 2x, 3x, 4x, 5x, 和6x都包含同样的数字。
import timedef get_digit(x): """ x各位上的数 """ digit = [] while x: digit.append(x % 10) x = x // 10 return digit# 1t0 = time.time()num = 1while 1: digit_2 = get_digit(num * 2) digit_2.sort() for i in range(3, 7): digit_i = get_digit(num * i) digit_i.sort() if digit_2 != digit_i: break if digit_2 == digit_i: break num = num + 1print(num)t1 = time.time()print(t1 - t0)# 2t0 = time.time()num = 1while 1: digit_2 = get_digit(num * 2) digit_2.sort() for i in range(3, 7): digit_i = get_digit(num * i) digit_i.sort() if digit_2 != digit_i: break if digit_2 == digit_i: break num = num + 1 digit_num = get_digit(num) if digit_num[-1] == 2: num = 5 * 10 ** (len(digit_num) - 1)print(num)t1 = time.time()print(t1 - t0)# 3t0 = time.time()num = 1while 1: digit_2 = get_digit(num * 2) if sum(digit_2) % 3 == 0 and (0 in digit_2 or 5 in digit_2): digit_2.sort() for i in range(3, 7): digit_i = get_digit(num * i) digit_i.sort() if digit_2 != digit_i: break if digit_2 == digit_i: break num = num + 1 digit_num = get_digit(num) if digit_num[-1] == 2: num = 5 * 10 ** (len(digit_num) - 1)print(num)t1 = time.time()print(t1 - t0)# 4t0 = time.time()num = 3while 1: digit_2 = get_digit(num * 2) if 0 in digit_2 or 5 in digit_2: digit_2.sort() for i in range(3, 7): digit_i = get_digit(num * i) digit_i.sort() if digit_2 != digit_i: break if digit_2 == digit_i: break num = num + 3 digit_num = get_digit(num) if digit_num[-1] in [2, 3, 4]: num = 5 * 10 ** (len(digit_num) - 1) + 1print(num)t1 = time.time()print(t1 - t0)t0 = time.time()num = 3while 1: digit_2 = get_digit(num * 2) if 0 in digit_2 or 5 in digit_2: digit_2.sort() for i in range(3, 7): digit_i = get_digit(num * i) digit_i.sort() if digit_2 != digit_i: break if digit_2 == digit_i: break num = num + 3print(num)t1 = time.time()print(t1 - t0)t0 = time.time()num = 3while 1: digit_2 = get_digit(num * 2) if 0 in digit_2 or 5 in digit_2: digit_2.sort() for i in range(3, 7): digit_i = get_digit(num * i) digit_i.sort() if digit_2 != digit_i: break if digit_2 == digit_i: break num = num + 3 if str(num)[0] in '234': num = 5 * 10 ** (len(str(num)) - 1) + 1print(num)t1 = time.time()print(t1 - t0)t0 = time.time()num = 3digit_len = 1while 1: digit_2 = get_digit(num * 2) if 0 in digit_2 or 5 in digit_2: digit_2.sort() for i in range(3, 7): digit_i = get_digit(num * i) digit_i.sort() if digit_2 != digit_i: break if digit_2 == digit_i: break num = num + 3 if num > 10 ** digit_len: digit_len += 1 if int(num / 10 ** (digit_len - 1)) in [2, 3, 4]: num = 5 * 10 ** (digit_len - 1) + 1print(num)t1 = time.time()print(t1 - t0)
0 0
- 欧拉计划 52
- 欧拉计划 100
- 欧拉计划
- 欧拉计划
- 欧拉计划是什么?
- 欧拉计划
- 欧拉计划3
- 欧拉计划
- 欧拉计划23
- 欧拉计划20
- 欧拉计划21
- 欧拉计划22
- 欧拉计划
- 欧拉计划 1
- 欧拉计划 2
- 欧拉计划 3
- 欧拉计划 4
- 欧拉计划 5
- 地址已经被使用——Address already in use(纠正《后台开发:核心技术于应用实践》书中的错误)
- 从Vim小白到Vim superstar
- Codeforces Round #387(div.2) 17-1-6
- plsql和oracle11g 关联
- 从BAT看你需要的技术栈
- 欧拉计划 52
- 【考研】东北大学二叉树相关算法(1)
- 技术人员的发展之路
- Java IO学习笔记
- 关于《啊哈算法》模拟链表的一些思考
- Linux发送结构体
- C#贪吃蛇
- Java抽象类与接口的区别
- 连续第九十六天