9.1练习题5 差k素数对 题解
题目出处:洛谷 P1348 ,题面略有改编。
题目描述
给你两个数 n 和 k ,请求出所有小于等于 n 的相差为 k 的素数对。
输入格式
两个正整数n,k。1<=k<=n<=10000。
输出格式
所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。
样例输入
6924 809
样例输出
2 811
题目分析
这道题目就是“素数判断”+“枚举”。
可以用判断素数的方法进行求解。
实现代码如下:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 10010;
int k, n;
bool is_prime(int a) {
if (a < 2) return false;
for (int i = 2; i * i <= a; i ++)
if (a % i == 0)
return false;
return true;
}
int main() {
cin >> n >> k;
bool flag = false; // flag用于标记有没有找到
for (int i = 2; i+k <= n; i ++) {
if (is_prime(i) && is_prime(i+k)) {
flag = true;
cout << i << " " << i+k << endl;
}
}
if (!flag) // 如果flag为false,说明没找到
puts("empty");
return 0;
}
也可以用素数筛法进行求解,实现代码如下:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 10010;
int k, n;
bool isp[maxn];
int main() {
cin >> n >> k;
bool flag = false;
fill(isp+2, isp+n+1, true);
for (int i = 2; i <= n; i ++) {
if (isp[i]) {
for (int j = i*i; j <= n; j += i)
isp[j] = false;
}
}
for (int i = 2; i+k <= n; i ++) {
if (isp[i] && isp[i+k]) {
flag = true;
cout << i << " " << i+k << endl;
}
}
if (!flag) puts("empty");
return 0;
}
9.1练习题5 差k素数对 题解的更多相关文章
- P1062 差K素数对
题目描述 给你两个数 n 和 k ,请求出所有小于等于 n 的相差为 k 的素数对. 输入格式 两个正整数n,k.1<=k<=n<=10000. 输出格式 所有小于等于n的素数对.每 ...
- 排序入门练习题3 谁考了第k名 题解
题目出处:<信息学奥赛一本通>第二章 上机练习1 题目描述 在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名的学生的学号和成绩. 输入格式 输入的第一行包含两 ...
- 220. Contains Duplicate III 数组指针差k数值差t
[抄题]: Given an array of integers, find out whether there are two distinct indices i and j in the arr ...
- 【LeetCode练习题】Merge k Sorted Lists
Merge k Sorted Lists Merge k sorted linked lists and return it as one sorted list. Analyze and descr ...
- OJ2237第k小数题解
题目描述: 有n个数,请你找出第k小的数. 输入描述: 第一行有2个正整数n,k(n,k<=10^7)第二行有n个非负数ai(ai<=10^5) 输出描述: 输出第k小的数. 输入样例: ...
- 2018ICPC网络赛(焦作站)K题题解
一.题目链接 https://nanti.jisuanke.com/t/31720 二.题意 给$N$种船只,第$i$种船的载重量是$V_i$,数量是$2^{C_i}-1$.接下来有$Q$次询问,每次 ...
- 2018HPU暑期集训第四次积分训练赛 K - 方框 题解(图形打印)
思路分析:题目已经明确透露了这道题的解法:就是画框.当 输入的边长 的话,就表示可以在内层继续嵌套一个方框.废话就不多说了,直接上代码吧! 代码如下: #include <iostream&g ...
- c语言总练习题
!4,42 ?45 1 Description 键盘输入一个双精度数据,乘以2以后输出 Input 输入一个double型数据 Output 输出它的两倍数,结果保留8位小数 Sample Input ...
- hihoCoder#1743:K-偏差排列(矩阵快速幂+状压dp)
题意 如果一个 \(1\to N\) 的排列 \(P=[P_1, P_2, ... P_N]\) 中的任意元素 \(P_i\) 都满足 \(|P_i-i| ≤ K\) ,我们就称 \(P\) 是 \( ...
随机推荐
- MapReduce on Yarn运行原理
一.概念综述 MapReduce是一种可用于数据处理的编程模型(或计算模型),该模型可以比较简单,但想写出有用的程序却不太容易.MapReduce能将大型数据处理任务分解成很多单个的.可以在服务器集群 ...
- Django2.2中间件详解
中间件是 Django 用来处理请求和响应的钩子框架.它是一个轻量级的.底层级的"插件"系统,用于全局性地控制Django 的输入或输出,可以理解为内置的app或者小框架. 在dj ...
- 零拷贝Zero copy-linux and java
背景-几种拷贝方式 方式1:Copying in Two Sample System Calls read(file, tmp_buf, len); write(socket, tmp_buf, le ...
- 在CentOS 7 / RHEL 7安装PostgreSQL 10
CentOS 到了7.x版本, PostgreSQL也来到了10.x版本. 前些天MySQL都直接跨到了8.0版本. 本文是一篇在CentOS 7.4上安装安装PostgreSQL 10.3 的教程. ...
- 关于python中str数据类型的内置常用方法(函数)总结
str基本数据类型常用功能 center(self,width,fllchar=none) 内容居中,width表示总长度,fllchar表示空白处默认为 ...
- Leetcode solution 124: Binary Tree Maximum Path Sum
Problem Statement Given a non-empty binary tree, find the maximum path sum. For this problem, a path ...
- 重新学习MySQL数据库开篇:数据库的前世今生
本文内容出自刘欣的"码农翻身"公众号,强烈推荐刘欣大大的文章. 数据库的前世今生 小李的数据库之旅 无纸化办公 小李是这个大学计算机科学与技术系的知名学生,他的编程能力了得,使 ...
- js获取Cookie,获取url参数
function getCookie(name) { var strCookie = document.cookie; var arrCookie = strCookie.split("; ...
- unity编辑器扩展_05(删除游戏对象并具有撤回功能)
代码: [MenuItem("Tools/Delete",false,1)] static void Delete() { GameObject[] go ...
- Codeforces 697D
题意略. 思路: 对于随机产生的一个数列,对于某个儿子,其兄弟在其前面的概率为 1 / 2. 所以这个兄弟对期望的贡献为son[v] / 2,所有兄弟加起来即为(tot - 1) / 2. 详见代码: ...