
HDU - 3823 Prime Friend(欧拉筛+思维)
发布日期:2021-05-07 02:30:06
浏览次数:19
分类:精选文章
本文共 1932 字,大约阅读时间需要 6 分钟。
题目大意
给出两个数 x , y x,y x,y,问能否找到另外一个非负整数 n n n,使得 x + n x+n x+n是素数, y + n y+n y+n也是素数,且二者是相邻的素数
思路
不难发现即使 x , y x,y x,y同时加上 n n n之后二者的差值是不变的,首先判断是否有解,也就是欧拉筛出来的素数的差值仍是 y − x y-x y−x,如果有解那么枚举筛出来的所有相邻素数对,判断二者之差是否为 y − x y-x y−x,如果是 n n n就是其中较小的素数减去 x x x。因为是从前向后枚举相邻素数的,那么求出也就是最小解
另外需要注意这题的范围是 2 e 7 2e7 2e7,小一点好像就 w a wa wa了,玄学
代码
//// Created by Happig on 2020/9/14//#include#include #include using namespace std;#define fi first#define se second#define pb push_back#define ins insert#define Vector Point#define ENDL "\n"#define lowbit(x) (x&(-x))#define mkp(x, y) make_pair(x,y)#define mem(a, x) memset(a,x,sizeof a);typedef long long ll;typedef long double ld;typedef unsigned long long ull;typedef pair pii;typedef pair pll;typedef pair pdd;const double eps = 1e-8;const double pi = acos(-1.0);const int inf = 0x3f3f3f3f;const double dinf = 1e300;const ll INF = 1e18;const int Mod = 1e9 + 7;const int maxn = 2e7 + 10;bitset isprime;vector prime;bool vis[200];void getPrime() { isprime.set(); isprime[0] = isprime[1] = 0; for (int i = 2; i < maxn; i++) { if (isprime[i]) prime.push_back(i); for (int j = 0; i * prime[j] < maxn && j < prime.size(); j++) { isprime[i * prime[j]] = 0; if (i % prime[j] == 0) break; } } for (int i = 0; i < prime.size() - 1; i++) { if (prime[i + 1] - prime[i] <= 150) vis[prime[i + 1] - prime[i]] = 1; }}int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0); int t, x, y, kase = 0; getPrime(); cin >> t; while (t--) { cin >> x >> y; cout << "Case " << ++kase << ": "; if (x > y) swap(x, y); if (!vis[y - x] || x == y) { cout << "-1" << ENDL; continue; } bool ok = 0; for (int i = 0; i < prime.size() - 1; i++) { if (prime[i + 1] - prime[i] == y - x && prime[i] >= x) { ok = 1; cout << prime[i] - x << ENDL; break; } } if (!ok) cout << "-1" << ENDL; } return 0;}
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月08日 21时13分18秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java开源博客My-Blog(SpringBoot+Docker)系列文章
2021-05-09
程序员视角:鹿晗公布恋情是如何把微博搞炸的?
2021-05-09
【JavaScript】动态原型模式创建对象 ||为何不能用字面量创建原型对象?
2021-05-09
Linux应用-线程操作
2021-05-09
多态体验,和探索爷爷类指针的多态性
2021-05-09
系统编程-进程间通信-无名管道
2021-05-09
记2020年初对SimpleGUI源码的阅读成果
2021-05-09
C语言实现面向对象方法学的GLib、GObject-初体验
2021-05-09
系统编程-进程-ps命令、进程调度、优先级翻转、进程状态
2021-05-09
为什么我觉得需要熟悉vim使用,难道仅仅是为了耍酷?
2021-05-09
一个支持高网络吞吐量、基于机器性能评分的TCP负载均衡器gobalan
2021-05-09
HDOJ2017_字符串统计
2021-05-09
高等软工第二次作业《需求分析阶段总结》
2021-05-09
404 Note Found 团队会议纪要
2021-05-09
CentOS安装Docker-ce并配置国内镜像
2021-05-09
使用JWT作为Spring Security OAuth2的token存储
2021-05-09
使用Redis作为Spring Security OAuth2的token存储
2021-05-09
【SOLVED】Linux使用sudo到出现输入密码提示延迟时间长
2021-05-09