当前位置: 首页 > news >正文

5-8能被3,5和7整除的数的个数(用集合实现)

求指定区间内能被3,5和7整除的数的个数

输入格式:

在一行中从键盘输入2个正整数a,b(1<=a<b<=10000000),用空格隔开。

输出格式:

在一行输出大于等于a且小于等于b的能被3,5和7整除的数的个数。

这是一开始做的,没有注意大题目需要用集合实现,不过运行起来也是对的。

a,b=list(map(int,input().split())) f=False total=0 for i in range(a,b+1): if i%3==0 and i%5==0 and i%7==0: total+=1 f=True if not f: print("0") else: print(total)

后面想在原题的基础上略微改一下:

a,b=list(map(int,input().split())) s=set(range(a,b+1))#或者s={x for x in range(a,b+1)} total=0 f=False for i in s: if i%3==0 and i%5==0 and i%7==0: total+=1 f=True if not f: print("0") else: print(total)

虽然运行结果是正确的,但是把(1<=a<b<=10000000)存入集合里会内存很大,所以最后题报了内存超限。

a,b=list(map(int,input().split())) s=set() f=False for i in range(a,b+1): if i%3==0 and i%5==0 and i%7==0: s.add(i) f=True if not f: print("0") else: print(len(s))

上面这个代码是完全正确的。

a,b=list(map(int,input().split())) s=set() f=False start=(a+104)//105*105 for i in range(start,b+1,105): s.add(i) f=True if not f: print("0") else: print(len(s))

虽然正确,但是运行速度太慢,所以进行了修改,3.5.7的最小公倍数是105,所以有了start=(a+104)//105*105这一步,意思是第一个>=a的105倍数。但不能直接(a,b,105),因为不能保证a一开始就是105的倍数。

import math a,b=list(map(int,input().split())) s=set() f=False start=math.ceil(a/105)*105 for i in range(start,b+1,105): s.add(i) f=True if not f: print("0") else: print(len(s))

还可以引入math函数,ceil的意思是向上取整,//的意思是向下取整,举个例子假设a是104或105

当104时,在start=(a+104)//105*105中,先对1.9进行向下取整到1,再1*105,

在math.ceil(a/105)*105中,start是先对0.99向上取整到1,再*105。

之所以在start=(a+104)//105*105中是加104,而非105,因为若是a初始就为105,会变为210//105=2*105,这样在for i in range(start,b+1,105):里就不对了,本来初始是105的,现在变为210,会使最后结果少统计。

英文含义Python实现
floor向下取整(取 ≤ x 的最大整数)int(x)math.floor(x)
ceil向上取整(取 ≥ x 的最小整数)math.ceil(x)
http://www.jsqmd.com/news/483904/

相关文章:

  • 基于Python的旅游出行必备商城设计与实现毕业设计源码
  • 什么是Agent Skills,它和Tool以及MCP有什么区别?
  • 评判方法:你现在正使用的服装ERP软件该升级吗?
  • Web Services 简介
  • 海康NAS R1新版下载引擎
  • 深扒GEO优化行业潜规则:全网首次深度拆解底层逻辑
  • 雨云注册以及提现教程
  • 【LeetCode-03 判断根结点是否等于子结点之和 python解法】
  • 使用nvm管理node.js
  • 达索Abaqus求解效率提升50%
  • 一道一年级错题,测出5个大模型的“智商“:最老实的那个反而输了?
  • 神经类比推理在创新问题解决中的潜力分析
  • API与MCP请求服务详解
  • 第6章 线性相关性、秩与维度:系统的独立程度
  • 实测3款自动生成PPT工具|2026年AI博主私藏,助力程序员/职场人高效排版
  • Centos7 安装配置MySQL5.7
  • 写作神器,又是小说下载神器,牛逼的 51mazi
  • C++与自动驾驶系统
  • c语言初学
  • Springboot常用的设置
  • 模板代码安全性增强
  • 深入排查:Tomcat生成Session ID耗时166秒,竟是因为熵池枯竭?
  • 如何使用SoccerOnTable:将足球视频转换为3D AR/VR体验的完整指南
  • 批量字符替换工具技术解析:原理、特性与应用实践
  • 告别死记硬背!图解AVL树的四种旋转,代码实现也不难
  • 【Python入门实战】一周吃透基础语法!
  • 终极指南:如何用《每日等效香烟》App直观了解城市空气污染
  • 编译器扩展与C++兼容性
  • 探索无限智能:`analysis-pinyin` - 汉字拼音分析利器
  • conda建立keras和pytorch环境