(原)pat1007素数猜想
---恢复内容开始---
1007. 素数对猜想 (20)
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
1:素数就是我们常说的质数,就是智能能被1和本身整除的数,判断一个数是不是素数最简单的方法就是枚举,即将n 除2 ~ n - 1的数如果存在存在一个数能整除,就不是素数,不过这个算法效率太低,改进一下,
2:根据一个合数的因子,不会大于sqrt(n)n的开方这个定理,可以算出100000以内的素数,再大不是算不出来了而是需要等待很长时间,这样算法也就没什么意义了,
3:筛法求素数这个方法有个缺点,就是需要额外的空间去存储,首先我们要创建一个数组大小为 n + 1,boolean primer[n + 1],初始全为True,每次去最小的素数,然后把在数组 为其倍数的元素筛选掉,这里我们置为false
例如:0 ~ 30这几个数
第一个素数为2 我们筛选掉 4 6 8 10 12 14 16 18 20 22 24 26 28 30
第二个素数为3 我们筛选掉9 15 21 27
.......
直到找出全部素数
第二种方法的python代码实现:
这里我还遇到一个问题这就涉及到代码的组织方式
如果把13行的代码改为
while i * i < n:
i = i + 1
这样在oj上提交就不能通过,
这是一个值得我自己思考的问题,如果因为代码本身造成的算法效率流失只能说明,是自己的无能了。
#!/usr/bin/env python3
__author__ = 'chao'
import math def isprimer(n):
if n < 2:
return False
if n == 2:
return True
i = 2
temp = math.sqrt(n)
while i < temp:
i += 1
if n % i == 0:
return False
return True def nofprimer(n):
count = 1
i = 1
if n < 3:
return 0
if n == 3:
return 1
while True:
temp = 6 * i + 1
temp2 = temp - 2
if temp <= n:
if isprimer(temp) and isprimer(temp2):
count += 1
else:
break
i += 1
return count if __name__ == "__main__":
n = input()
n = int(n)
print(nofprimer(n))
第三种方法代码实现:
import math p_array = [True]
p_array = [True] * (10000000+1) def isprimer(n):
p_array[0] = False
p_array[1] = False
if (n < 2):
return
i = 2
while i < n:
if p_array[i]:
j = 2
temp = i * j
while temp <= n:
if p_array[temp]:
p_array[temp] = False
j += 1
temp = i * j
i += 1
return def count_primer(n):
count = 1
if n < 5:
return 0
if n == 5:
return count
i = 1
while True:
temp1 = 6 * i - 1
temp2 = temp1 + 2
if temp2 > n:
break
if p_array[temp1] and p_array[temp2]:
count += 1
i += 1
return count if __name__ == "__main__":
n = input()
n = int(n)
isprimer(n)
print(count_primer(n))
刚学python练练手代码还不够规范
(原)pat1007素数猜想的更多相关文章
- Android中图片优化之webp使用
博客出自:http://blog.csdn.net/liuxian13183,转载注明出处! All Rights Reserved ! 有关图片的优化,通常我们会用到LruCache(使用强引用.强 ...
- [数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习)
[数据结构1.2-线性表] 动态数组ArrayList(.NET源码学习) 在C#中,存在常见的九种集合类型:动态数组ArrayList.列表List.排序列表SortedList.哈希表HashTa ...
- NowCoder猜想(素数筛法+位压缩)
在期末被各科的大作业碾压快要窒息之际,百忙之中抽空上牛客网逛了逛,无意中发现一道好题,NowCoder猜想,题意很明显,就是个简单的素数筛法,但竟然超内存了,我晕(+﹏+)~ 明明有 3 万多 k ...
- PAT Basic 1007 素数对猜想 (20) [数学问题-素数]
题目 让我们定义 dn 为:dn = pn+1 – pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数."素数对猜想"认为"存在⽆穷多对 ...
- PAT 乙级 1007. 素数对猜想 (20) c++ 筛选法求素数
PAT 乙级 1007. 素数对猜想 (20) c++ 筛选法求素数 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数 ...
- CF735D Taxes 哥德巴赫猜想\判定素数 \进一步猜想
http://codeforces.com/problemset/problem/735/D 题意是..一个数n的贡献是它的最大的因子,这个因子不能等于它本身 然后呢..现在我们可以将n拆成任意个数的 ...
- [原]Hrbust1328 相等的最小公倍数 (筛素数,素因子分解)
本文出自:http://blog.csdn.net/svitter/ 题意: 求解An 与 An-1是否相等. n分为两个情况-- 1.n为素数, 2.n为合数. = =好像说了个废话..素数的时候 ...
- [原]素数筛法【Sieve Of Eratosthenes + Sieve Of Euler】
拖了有段时间,今天来总结下两个常用的素数筛法: 1.sieve of Eratosthenes[埃氏筛法] 这是最简单朴素的素数筛法了,根据wikipedia,时间复杂度为 ,空间复杂度为O(n). ...
- hihoCoder 1493 : 歌德巴赫猜想 素数筛法
题意:哥德巴赫猜想认为"每一个大于2的偶数,都能表示成两个质数之和".给定一个大于2的偶数N,你能找到两个质数P和Q满足P<=Q并且P+Q=N吗?如果有多组解,输出P最小的一 ...
随机推荐
- centos下svn的ldap认证配置
前提:完成svn的基本安装 一.安装sasl相关组件 #yum install -y cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain 二.查看SASL版本和提供的 ...
- Hibernate save()、saveOrUpdate()、merge()的区别
一. update 和 merge的区别 首先在执行更新操作的时候,两者都必须要有id update是直接执行update 语句,执行后状态为持久化状态 而merge则不一样: 1. 如果sessio ...
- tomcat在idea中启动乱码
server,localhost log,catalina log分别乱码 打开tomcat/conf/目录下修改logging.properties 找到"utf-8"行更改为 ...
- mysql实现计数器
本文转自:https://blog.csdn.net/stevendbaguo/article/details/70889449 如果是在非常高的并发之下,还是建议用内存数据库redis去实现计数的功 ...
- APP产品体验
一.前言 1.背景介绍 体验人员:羽珞体验时间:2016.4.12~2016.4.14 2.体验环境 产品名称 产品版本 测试设备 设备系统 易助(ehlep) 1.0 TCL J738M A ...
- AndroidStudio第一次提交项目代码到git服务器/github
虽然使用AndroidStudio(以下简称as)开发并使用git管理代码已经有很长时间,但是第一次提交项目到git依然会很不顺利,网上的文章或许因为所使用版本比较老,并不一定完全凑效,因此写此笔记做 ...
- 【extjs6学习笔记】0.3 准备:系统架构
- 解析没有key的Json
没有key的Json,例如:["http://www.cnblogs.com/Cherry-B/p/4625133.html","http://www.cnblogs.c ...
- SAP成都研究院飞机哥:程序猿和飞机的不解之缘
今天的文章来自Jerry的老同事张航. 张航和Jerry一样于2007年毕业后加入SAP成都研究院工作至今.进入SAP后的第一个开发部门是SAP Business by Design Infrastr ...
- HTML5与PHP的比较
一:需求量比较 知名招聘网站拉勾网显示,北京地区HTML5的需求量只有73个,而PHP的需求量有500+个:智联招聘网显示,北京上海广州深圳HTML5的需求量是7475个,而PHP的需求量是12514 ...