【python_PAT_乙类】1007_素数对猜想 ,Python运行超时解决方案
题目:
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。 输入样例:
20
输出样例:
4
思路:
1、常规判断素数,i+2 的值与 i进行比较(以3开始,且偶数排除),超时
2、开根号判断素数,以素数生成一个列表(以3开始,且偶数排除),列表里进行比较,超时
3、开根号判断素数,根据特性,判断当前是不是素数,不是素数,判断列表的最后一位与当前是不是差2,如果差2则移除列表最后一项值,保证列表中的值是既是素数且有素数对,在最终生成的列表项的最后一项需要做额外处理,需要判断最后1项是否有素数对。
代码如下:
1 # 素数对猜想
2 import math
3
4
5 def is_prime_num(test_num):
6 for i in range(3, int(math.sqrt(test_num)+1), 2):
7 if test_num % i == 0:
8 return False
9 return True
10
11
12 num = int(input())
13 count_num = 0
14 i = 3
15 list_num = []
16 while 2 < i <= num-2:
17 if is_prime_num(i):
18 list_num.append(i)
19 elif i - list_num[-1] == 2:
20 del list_num[-1]
21 i = i + 2
22 if (not is_prime_num(num)) and num - list_num[-1] == 2:
23 del list_num[-1]
24 print(len(list_num))
运行结果:
【python_PAT_乙类】1007_素数对猜想 ,Python运行超时解决方案的更多相关文章
- mysql update运行超时解决方案
问题描述: 今天update(修改)mysql数据库中一张表时,发现时间很长,而且会失败.报错:Error Code: 1205. Lock wait timeout exceeded; try re ...
- 使用Python定时清理运行超时的pdflatex僵尸进程
问题 在我们之前的<基于texlive定制chemfig化学式转换Python服务镜像>定制的pdflatex在线转换的镜像已经运行在生产环境了,但是最近总有人反馈服务跑着跑着就慢了,本来 ...
- PAT 1007. 素数对猜想 (20)
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数."素数对猜想"认为"存在无穷多对相邻且 ...
- 为什么python运行的慢
最近在leetcode刷题,明显的注意到同样的算法,python运行的要慢的多,查资料得到python运行的慢主要原因如下: 一.动态类型导致运行速度慢,在北邮人论坛里面的这篇帖子中有较为详细的解释, ...
- PAT B1007 素数对猜想 (20 分)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素 ...
- 素数对猜想之python3实现
题目 让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数.“素数对猜想”认为“存在无穷多对相邻且差为 ...
- PTA(BasicLevel)-1007素数对猜想
一 问题描述-素数对 让我们定义素数差dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数.“素数对猜想”认为“ ...
- 【PAT】1007. 素数对猜想 (20)
1007. 素数对猜想 (20) 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相 ...
- python函数超时情况应对总结
最近处理一个线程中的函数超时问题. 函数里面有一个地方可能会卡死,我们需要去判断这个是不是卡死了,并做出相应的应对方案. 最开始想的是在函数上增加一个装饰器,使其在超时时抛出异常,然后在其他地方捕获这 ...
- PAT——1007. 素数对猜想
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素数”. 现给定任意正 ...
随机推荐
- 在 Windows 上使用VirtualBox 安装 Ubuntu
一.VirtualBox虚拟机软件 之前使用过VMWare,这是第一次尝试使用VirtualBox,记录一下~ 我们可以从官网下载VirtualBox,地址:https://www.virtualbo ...
- 阿里云初始化,epel库,docker安装的一般步骤,和java8 升级 java11 的一些bug,无法显示验证码,等
1. 反射异常 有些反射异常,不是自己代码的错而是一些框架调用的时候,所带来的,不好处理. 用压制输出的形式,1行为压制,2行为调试模式,输出所有的报错信息.这里用java.base / java.n ...
- 《Python 3.8从入门到精通(视频教学版)》PDF电子书赠阅
<Python 3.8从入门到精通(视频教学版)>PDF电子书赠阅,个人学习使用,禁止任何形式的商用. https://pan.baidu.com/s/1U_8-N9YJVG8UsUHbQ ...
- JSP课设:学生选课系统(附源码+调试)
JSP学生选课管理系统学生选课管理系统功能概述(1)登录模块分为两种角色:学生角色.教师角色 (2)教师模块:选课管理功能为对课程信息(课程编号.名称.学分)进行添加.修改.删除操作:学生信息功能对学 ...
- cuda 11.8
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_a ...
- python中如何获取主机的ip和主机名
使用python中的socket库,可以轻松获取主机ip和主机名. 一.获取主机名 import socket hostname = socket.gethostname() print(hostna ...
- Java-面向对象进阶 继承限制
1.子类可以继承父类的那些资源 private成员 子类和父类不在同一个包,使用默认访问权限的成员 构造方法
- Android 内存优化浅析
一:内存占用几大要点 1,Object Cache:Image cache,single instance obj(重量级别,例如数据库连接obj,bitmap ref),Thread过多, 2,Vi ...
- 关于 verilator 中 config.vlt 等配置文件的使用
参考网页:https://verilator.org/guide/latest/exe_verilator.html#configuration-files 注意,在使用 config.vlt 配置文 ...
- 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案
var threeSumClosest = function(nums, target) { let ans = nums[0] + nums[1] + nums[2]; const len = nu ...