【题目链接】

点击打开链接

【算法】

不难看出,x1的范围是[x2-P(x2)+1,x2],x0的范围是[x1-P(x1)+1,x1]

我们可以先做一遍线性筛,然后暴力就可以了

【代码】

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 1e6; int i,j,k,tmp,x,l,ans;
bool mark[MAXN+];
vector<int> Prime; template <typename T> inline void read(T &x) {
int f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
x *= f;
}
template <typename T> inline void write(T x) {
if (x < ) { putchar('-'); x = -x; }
if (x > ) write(x/);
putchar(x%+'');
}
template <typename T> inline void writeln(T x) {
write(x);
puts("");
} int main() { read(x);
for (i = ; i <= MAXN; i++) {
if (!mark[i]) Prime.push_back(i);
for (k = ; k < Prime.size(); k++) {
tmp = i * Prime[k];
if (tmp > MAXN) break;
mark[tmp] = ;
if (i % Prime[k] == ) break;
}
}
for (i = ; i < Prime.size(); i++)
if (x % Prime[i] == ) l = x - Prime[i] + ;
ans = x;
for (i = ; i < Prime.size(); i++) {
for (j = * Prime[i]; j <= x; j += Prime[i]) {
if (j < l) continue;
ans = min(ans,j-Prime[i]+);
}
} writeln(ans); return ;
}

最新文章

  1. 解决Chrome 下载带半角分号出现net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION的问题
  2. bootstrap Table 中给某一特定值设置table选中
  3. 涵涵和爸爸习惯养成进度表(一)(May 5 - May 25)
  4. SQL中JOIN 的用法
  5. JDK7中的新特性 The try-with-resources Statement
  6. iOS开发--Bison详解连连支付集成简书
  7. Objective-C传递数据小技巧
  8. android NDK 实用学习(五)-c++端调用java接口
  9. Stream To String , String To Stream
  10. jquery 三种开始写法
  11. ACM题目:487-3279
  12. linux环境设置:使ftp不输密码
  13. HTML5系列之——applicationCache对象
  14. kafka topic 相关操作
  15. 2018-01-12 Antlr4添加中文变量赋求值,括号,各种问题
  16. IntelliJ IDEA下的使用git
  17. NOIP-火柴棒等式
  18. 设计模式之 SOA面向服务的体系
  19. D - GCD HDU - 1695 -模板-莫比乌斯容斥
  20. HDU-1260.Tickets(简单线性DP)

热门文章

  1. 2018 ICPC 沈阳网络预赛 Fantastic Graph (优先队列)
  2. linux下eth0 lo wlan0
  3. IntelliJ IDEA 使用的问题总结
  4. c++中c_str()函数
  5. iOS文件的管理(添加,删除,拷贝,移动)
  6. 面试-1-C#浅解
  7. Neutron配置Floating IP
  8. Redis相关知识
  9. 图解 servlet 与jsp的关系
  10. SVN回滚机制