P 1007 素数对猜想
转跳点:
日常水题,虽然要期中考试了,但提还是要水的,一共95题,早晚能水完。来来来,看题!

到目前为止,我发现乙题普遍需求明确。思路也很明确。这道题两种方法。
第一种:动态查找,从最大或最小的开始查找,并且从第二个素数出现开始,依次与上一个进行比较,从而确定素数对的个数。
第二种:先算出0~n范围内的所有素数,然后再查找素数对。
第一种需要快速的检验素数的算法;第二种需要快速的素数表算法
关于验证素数我专门写了一篇博客转跳点击我——>o(*////▽////*)q
思路大概就这样,下面看一下代码:
第一种:
/**
* @brief 动态计算素数对
* @note 关键点都注释了
* @author 杨文蓁的小迷弟
*/
#include <stdio.h>
#include <math.h>
#define MAX 100000 int main()
{
int n, count = 0;
scanf("%d", &n); int prePrime = 0; // 存放上一个素数 for (int i = n; i > 1; i--)
{
int flag = 1;
for (int j = 2; j <= (int)sqrt(i); j++)
{
if (i % j == 0)
{
flag = 0; // 标记位为0表示当前i不为素数
break;
}
}
if (flag == 1) // 标记位为1表示当前i为素数
{
if (prePrime > 1 && prePrime - i == 2) // 判断相邻两素数之差
{
count++;
}
prePrime = i;
}
}
printf("%d\n", count);
return 0;
}
第一种比较简单,直接贴了
第二种:
1 #include <stdio.h>
2 #include <string.h>
3 #define MAXN 100010
4
5 /**
6 * @brief Euler筛法
7 * @note 线性打表
8 * @param size: 范围
9 * @author 杨文蓁的小迷弟
10 */
11 int Isprime[MAXN];
12 int Prime[MAXN]; //记录素数
13
14 void Euler_prime(int size);
15
16 int main()
17 {
18 int size, cnt = 0;
19 scanf("%d", &size);
20 Euler_prime(size);
21 for (int i = 0; i < size; i++)
22 {
23 if (2 == Prime[i + 1] - Prime[i])
24 {
25 //printf("Prime[%d] - Prime[%d]\n%d - %d = %d\n", i+1, i, Prime[i+1], Prime[i], Prime[i+1] - Prime[i]);
26 cnt++;
27 }
28 }
29 printf("%d\n", cnt);
30 return 0;
31 }
32
33 void Euler_prime(int size)
34 {
35 int cnt = 0; //记录素数个数
36
37 Isprime[0] = Isprime[1] = 1;
38 for (int i = 2; i <= size; i++)
39 {
40 if (!Isprime[i]) //
41 {
42 Prime[cnt++] = i;
43 }
44 for (int j = 0; j < cnt && i * Prime[j] < size; j++) //在MAXN范围内讲所有已得出的素数的倍数都清除
45 {
46 Isprime[i * Prime[j]] = 1;
47 if (!(i % Prime[j])) //如果被1某个素数整除的话那就意味着被其他素数筛过了,往后就不用继续了
48 {
49 break;
50 }
51 }
52 }
53 }
第二种
建议试一下第二种,方法当作锻炼。
PAT不易,诸君共勉!
P 1007 素数对猜想的更多相关文章
- PAT乙级 1007. 素数对猜想 (20)
1007. 素数对猜想 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 让我们定义 dn 为:dn = ...
- PAT-乙级-1007. 素数对猜想 (20)
1007. 素数对猜想 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 让我们定义 dn 为:dn = ...
- [C++]PAT乙级1007.素数对猜想 (20/20)
/* 1007. 素数对猜想 (20) 让我们定义 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是偶数."素 ...
- 【PAT】1007. 素数对猜想 (20)
1007. 素数对猜想 (20) 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相 ...
- PAT 乙级 1007.素数对猜想 C++/Java
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 是偶数 ...
- PAT (Basic Level) Practice (中文)1007 素数对猜想 (20分)
1007 素数对猜想 (20分) 让我们定义dn为:dn = pn+1 − pn,其中pi是第i个素数.显然有d1 = 1,且对于n > 1有dn是偶数."素数对猜想"认 ...
- PAT——1007. 素数对猜想
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对于n>1有 dn 是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素数”. 现给定任意正 ...
- PAT (Basic Level) Practise (中文)- 1007. 素数对猜想 (20)
http://www.patest.cn/contests/pat-b-practise/1007 让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数.显然有 d1=1 且对 ...
随机推荐
- SpringMvc 初步配置
spring-aop.jarspring-bean.jarspring-context.jarspring-core.jarspring-web.jarspring-webmvc.jarcommons ...
- 本周总结(19年暑假)—— Part1
日期:2019.7.14 博客期:107 星期日 这几周正在摸索着找寻与大型数据库相关的知识,重装了电脑,配置了虚拟机的环境,继续研究了几下修改器.
- CSS相关(1)
CSS: 字体: 网页默认字体16px; 网站通用字体大小14px 最小是12px,最大无限大 单位换算:1em=16px 选择器:标签选择器:选择页面中所有指定标签,权重为1 通配符选择器:选择所有 ...
- java程序中的经常出现的的异常处理课后总结
一.JDK中常见的异常情况 1.常见异常总结图 2.java中异常分类 Throwable类有两个直接子类: (1)Exception:出现的问题是可以被捕获的 (2)Error:系统错误,通常由JV ...
- 【mysql】mysq8.0新特性
一.MySQL8.0简介 mysql8.0现在已经发布,2016-09-12第一个DM(development milestone)版本8.0.0发布.新的版本带来很多新功能和新特性,对性能也得到 ...
- 【Linux shell】 while read line
循环中的重定向或许你应该在其他脚本中见过下面的这种写法:while read linedo …done < file刚开始看到这种结构时,很难理解< file是如何与循环配合在一起工作的. ...
- AJAX封装数据处理简单操作
数据的封装处理主要展现在JS中,在页面里面引入封装的JS, "js/ajax.js" 简单封装将get和post方法都写入,get的方法和post的方法依然需要严格区分,包括typ ...
- redis-Hash(哈希表)
Redis hash 是一个string类型的field和value的映射表,它的添加.删除操作都是O(1)(平均).hash特别适用于存储对象,将一个对象存储在hash类型中会占用更少的内存,并且可 ...
- android数据的四种存储方式之一——SharedPreference
除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data ...
- os期末复习
登记之后会发生两个变化:读者数增加(v操作).座位数减少(p操作) 注销之后会发生的变化:读者数减少(p操作).座位数增加(v操作) 必须要清楚释放的是甚麽,以及申请的是甚麽资源(在具体的题目当中) ...