PAT 乙级1007 python3运行超时

luoyanhanhan 2018-07-29 10:59:53

我的代码:
def Prime_list(n):
list = []
flag = [1]*(n+2)
p = 2
while p <= n:
list.append(p)
for i in range(2 * p, n + 1, p):
flag[i] = 0
while 1:
p += 1
if flag[p] == 1:
break
return list

if __name__ == "__main__":
N = int(input())
list = Prime_list(N)
count = 0
for i in list[:-1]:
if list[list.index(i)+1] - i == 2:
count += 1
print(count)

运行结果:

请大佬们指出我代码里面的问题,最好还能给出改进意见
...全文
242 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoyanhanhan 2018-07-30
  • 打赏
  • 举报
回复
引用 1 楼 chaleaoch_gmail 的回复:
其实我没看你的业务逻辑.
但是这里是一个死循环.
while p <= n:
list.append(p)
for i in range(2 * p, n + 1, p):
flag[i] = 0
while 1:
p += 1
if flag[p] == 1:
break


没有break外面的大循环,同时P不变N也不变.

p是有变的,内循环的p在不断自增,遇到下一个flag[p]==1的时候跳出,将列表里p的倍数的位置置0,用的是埃氏筛选法求素数
冯斯特罗 2018-07-30
  • 打赏
  • 举报
回复
其实我没看你的业务逻辑.
但是这里是一个死循环.
while p <= n:
list.append(p)
for i in range(2 * p, n + 1, p):
flag[i] = 0
while 1:
p += 1
if flag[p] == 1:
break


没有break外面的大循环,同时P不变N也不变.
Re:CCNA_CCNP 思科网络认证 PAT NAT 端口或地址转换 与端口映射======================# 本章课程大纲        公网地址和私网地址        NAT应用场景        静态NAT  :static  地址转换        动态NAT  :dynamic地址转换        PAT        :端口地址转换        端口映射 :port map        在Windows上同时实现的NAT和端口映射 # 私网地址三类 A类:10.0.0.0                                255.0.0.0(1网段) B类:172.16.0.0 -172.31.0.0         255.255.0.0(16网段) C类:192.168.0.0-192.168.255.0  255.255.255.0(255网段) # NAT 的使用场景        NAT的最初的目的是允许把私有IP地址映射到公网地址,以减缓IP地址空间的消耗。        当一个组织更换它的互联网服务提供商ISP,但不想更改内网配置方案时,NAT同样很有用途。        以下是适于使用NAT的多种情况:         企业内网接入Internet节省公网地址         单向访问         大方向:内网访问互联网(互联网上主机不能够访问内网主机)         小方向:同单位实现两个网段之间单向访问(涉密部门能够访问其他部门,反之不可)         增加一个网段          避免在主干路由器增加到这个网段的路由         在Windows上实现的NAT和端口映射 # 网络地址转换的类型        下面介绍一下NAT的三种类型。         静态NAT 是为了在私网地址和公网地址间,允许一对一映射而设计的。         或者IPv4和IPv6之间的转换(典型)         不节省公网地址,故公网地址的利用效率不高,         无任何安全性,外网可以通过公网地址直接攻击内网主机,好像只增加路由器的工作         适用场景类似代理,可以较方便的更换主机,而无需修改路由器的配置         故应用不够广泛...         动态NAT 可以实现映射一个未注册 IP地址到注册IP地址池中的一个注册IP地址。         多对一,或多对多         比较PAT优势:避免被误认为攻击而被封ip地址         不太节省地址,应用不广泛         复用是最流行的NAT配置类型,也被称为端口地址映射(PAT)。         通过使用PAT,可实现上千个用户仅通过一个真实的全球 IP地址连接到Internet。         缺点:增加延迟,消耗路由器性能 # 端口映射(port mapping) 允许Internet上的计算机通过企业路由器的公网IP地址访问到内网的服务器------------------------------------------------         

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧