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