博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷——P2640 神秘磁石
阅读量:6421 次
发布时间:2019-06-23

本文共 1288 字,大约阅读时间需要 4 分钟。

P2640 神秘磁石

题目背景

在遥远的阿拉德大陆,有一种神秘的磁石,是由魔皇制作出来的,

题目描述

1.若给他一个一维坐标系,那么他的磁力一定要在素数坐标的位置上才能发挥的最大(不管位置坐标的大小,只要是素数那么磁力就一样大)

2.若两个磁石相距为k,那么磁石间的破坏力将会达到当前磁力的峰值

显然,两磁石间最大破坏力取决于磁力大小和磁石间距,那么请问给出长度不超过n的一维坐标系,有哪几对坐标间磁石破坏力最大。

输入输出格式

输入格式:

 

两个正整数n,k。1<=k<=n<=10000

 

输出格式:

 

所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。

 

输入输出样例

输入样例#1: 
6924 809
输出样例#1: 
2 811 线性筛素数
#include
#include
#include
#include
#define N 10010#define LL long longusing namespace std;bool not_prime[N];int n,k,tot=0,prime[N];int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int Euler_sieve(){ not_prime[1]=1; for(int i=2;i<=n;i++) { if(!not_prime[i]) prime[++tot]=i; for(int j=1;j<=tot;j++) { if(prime[j]*i>n) break; not_prime[prime[j]*i]=true; if(i%prime[j]==0) break; } }}int main(){ n=read(),k=read(); Euler_sieve();tot=0; for(int i=1;i+k<=n;i++) if(!not_prime[i]&&!not_prime[i+k]) tot++,printf("%d %d\n",i,i+k); if(!tot) printf("empty\n"); return 0;}

 

转载于:https://www.cnblogs.com/z360/p/7853274.html

你可能感兴趣的文章
error C1083: Cannot open include file: 'ntddk.h': No such file or directory
查看>>
Windows内存管理(1)--分配内核内存 和 使用链表
查看>>
paramiko 登录linux主机后执行tail后返回数据不完整解决方法。
查看>>
PHP根据URL提取根域名
查看>>
Eclipse添加DTD文件实现xml的自动提示功能
查看>>
Java Reflection (JAVA反射)详解
查看>>
JSP中页面刷新后保留文本输入框的值
查看>>
数据结构的学习
查看>>
Centos和Redhat的区别和联系
查看>>
JUC——线程同步锁(Condition精准控制)
查看>>
CKEDITOR的配置
查看>>
比原空投问答题库题解(二)
查看>>
闪烁的LED灯
查看>>
MySQL Proxy 实现MySQLDB 读写分离
查看>>
ef core 数据迁移命令
查看>>
dedecms--二次开发之会员帐号过期无法登录
查看>>
四则运算
查看>>
uva 10269(floyd+Dijkstra)
查看>>
Codeforces Round #230 (Div. 1) 解题报告
查看>>
WCF 中wsHttpBinding配置实例程序
查看>>