第5章-8 能被3,5和7整除的数的个数(用集合实现)
求指定区间内能被3,5和7整除的数的个数
【输入格式:
在一行中从键盘输入2个正整数a,b(1<=a<b<=10000000),用空格隔开。
输出格式:
在一行输出大于等于a且小于等于b的能被3,5和7整除的数的个数。
输入样例1:
在这里给出一组输入。例如:
10 100
输出样例1:
在这里给出相应的输出。例如:
0
输入样例2:
在这里给出一组输入。例如:
1000 100000
输出样例:
在这里给出相应的输出。例如:
943】
思路:给定循环步长得到集合,避免多余的判断,确定好开头是重点
m,n = map(int, input().split())
arr = []#集合数组
for i in [3,5,7]:#确定步长
tmp = ((m-1)//i+1)*i#定好开头
arr.append({j for j in range(tmp, n+1, i)})
print(len(arr[0]&arr[1]&arr[2]))
本篇博客介绍了一种高效算法,用于计算指定区间内同时被3、5和7整除的数的数量。通过确定合适的起始点和步长,使用集合操作减少不必要的判断,实现了快速准确的计数。
&spm=1001.2101.3001.5002&articleId=107072963&d=1&t=3&u=b5256a9276eb4f12999732479a01f18a)
2447

被折叠的 条评论
为什么被折叠?



