题目:求一个正整数区间内所有2和3的公倍数
# - Tutorial 3
# - 2020-2-3
# - Johan
# - 题目:
# 1、求0到某个正整数范围内所有同时是2和3的倍数
'''
包含的语法:
1、变量和列表赋值
2、输入和输出
3、类型转换
4、time用法
5、条件语句
'''
import time
limit, cmd = input("请输入一个上限__及方法__:").split()
limit = int(limit)
cmd = int(cmd)
while limit < 0 or limit > 99999 or cmd < 1 or cmd > 3:
limit, cmd = input("请输入一个上限:").split()
time_start = time.time()
# 方法1:暴力遍历法
if cmd == 1:
lst = list(range(1, limit + 1))
for i in lst:
if i % 2 == 0 and i % 3 == 0:
print(i)
# 方法2:2的倍数法(减半遍历数)
elif cmd == 2:
lst = list(range(2, limit + 1, 2))
for i in lst:
if i % 2 == 0 and i % 3 == 0:
print(i)
# 方法3:3的倍数法
else:
lst = list(range(3, limit + 1, 3))
for i in lst:
if i % 2 == 0 and i % 3 == 0:
print(i)
time_end = time.time()
print("程序用时:{0}s".format(time_end - time_start))
运行结果:
区间越大时,能发现三种算法的效率不同