Python:每日一题008
题目:
判断101-200之间有多少个素数,并输出所有素数。
程序分析:
判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
个人思路及代码:
li=[]
def is_prime(num):
n = int(sqrt(num))
for i in range(2,n+1):
if num % i == 0:
print("%s不是素数"%num)
break
else:
print("%s是素数" % num)
li.append(num)
for j in range(100,201):
is_prime(j)
print("100-200之间的素数个数是%s\n"%len(li),li)
分析:将判断一个数是否属于素数写成函数,用for循环判断一个数是否属于素数。
其他解答参考:
解答1:
print("----------判断101-200之间有多少个素数----------")
count = 0
for i in range(101, 200):
flag = 0
for j in range(2, int(i ** 0.5) + 1):
if i % j == 0: # 如果不是素数
flag = 1
if flag == 0:
count += 1
print(i)
print("101-200之间有 %d 个素数" % count)
分析:采用flag的方式,设置标志,逐个输出素数
解答2:
print([i for i in range(101,200) if all(i%ii for ii in range(2,int(i**0.5)+1))])
分析:采用了列表解析式,限定了i的范围,同时用内置函数all判断,如果该数除以i**0.5+1余数为0则不是素数,all里面有0则if为false
解答3:
def isPrime(n):
if n <= 1:
return False
i = 2
while i*i <= n:
if n % i == 0:
return False
i += 1
return True
def prime_num(x,y):
prime_num_li= []
for i in range(x,y):
res = isPrime(i)
if res:
prime_num_li.append(i)
print("素数共有%s个,分别是:%s"%(len(prime_num_li),prime_num_li))
if __name__ == "__main__":
prime_num(100,201)
分析:比较完善的写法,采用函数式思想写出的代码。
(本文编号008,首发于2018年10月11日,修改于2018年10月13日)
Python:每日一题008的更多相关文章
- Python每日一题 008
题目 基于多线程的网络爬虫项目,爬取该站点http://www.tvtv.hk 的电视剧收视率排行榜 分析 robots.txt User-agent: Yisouspider Disallow: / ...
- Python每日一题 004
将 0001 题生成的 200 个激活码(或者优惠券)保存到 Redis 非关系型数据库中. 代码 import redis import uuid # 创建实例 r=redis.Redis(&quo ...
- Python每日一题 003
将 002 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中. 代码 import pymysql import uuid def get_id(): for i in ra ...
- Python每日一题 002
做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? 在此生成由数字,字母组成的20位字 ...
- Python每日一题 009
题目 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来. 代码 参照网络上代码 # coding: utf-8 import os import re # ...
- Python每日一题 007
题目 你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词. 很难客观的说每篇日记中最重要的词是什么,所以在这里就仅仅是将每篇日记中出 ...
- Python每日一题 006
题目 你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小. 如果只是单纯的通过将图片缩放到iPhone5分辨率大小,显然最后呈现出来的效果会很糟糕.所以等比例缩放到长( ...
- Python每日一题 005
任一个英文的纯文本文件,统计其中的单词出现的个数. 代码 # coding:utf-8 import re def get_word(filename): fp=open(filename," ...
- Python每日一题 001
Github地址:https://github.com/Yixiaohan/show-me-the-code Talk is Cheap, show me the code. --Linus Torv ...
随机推荐
- oracle DML语句
DML语句 1. 插入数据 创建一个新表 create table new_cust as select * from customers --使用insert语句添加行 /* 确定要插入的行所在的 ...
- 操作 实例 / dom
响应式:数据改变时会触发其他联动.例如:模板中的数据绑定:计算属性的重新计算: ---------------------------------------------------- vm.$par ...
- azkaban架构介绍
转自:https://blog.csdn.net/huoji1990/article/details/81911904 官网:https://azkaban.readthedocs.io/en/lat ...
- jvm(一)类加载器
1.jvm的生命周期结束的几种情况 a.执行了System.exit()方法 b.程序正常执行结束 c.程序在执行过程中遇到了异常或错误而异常终止 d.操作系统出现错误 2.类加载过程 加载:查找并加 ...
- EMQTT本地源码搭建填坑记录
因业务需求需要本地搭建一个emqtt的消息队列服务器,根据官网提示搭建失败,具体如下 官方步骤: Erlang 安装: http://www.erlang.org/ MSYS2 安装: http:// ...
- Servlet学习记录2
读取web.xml参数 上篇文章ImageServlet里只设置了JPG,GIF,DOC类型文件的Content-Type.如果这时候需求变化了,需要增加Excel文件格式的Content-Type, ...
- VirtualBox虚拟机网络设置说明
1. 网络接入模式简介 VirtualBox的提供了四种网络接入模式,它们分别是: 1.NAT 网络地址转换模式(NAT,Network Address Translation) ...
- setCapture 使用方法
setCapture 可以捕获到 移动到浏览器外的鼠标事件. 例如拖动过程中,即使鼠标移动到了浏览器外,拖动程序依然可以执行! 作用就是把 把鼠标事件 捕获到 当前文档指定的对象! setCaptur ...
- nagios监控mysql及邮件报警
1.使用默认监控命令check_http命令+相关的参数来实现,如下: 在command.cfg添加如下关键词监控命令:check_http_word,参数解析:-I指定IP或者主机名,-u指定URL ...
- 源码解析之HashMap源码
关于HashMap的源码分析,网上已经有很多写的非常好的文章了,虽然多是基于java1.8版本以下的.Java1.8版本的HashMap源码做了些改进,理解起来更复杂点,但也不脱离其桶+链表或树的重心 ...