cf923aPrimal Sport,模拟

思路
打素数表
for 遍历x1(即p2+1) :x2-x2的最大质因数+1~x2
    if i不是素数
        x0=min(x0,x1-x1的最大质因数+1)
    else x0=min(x0,x1);
代码:
#include <bits/stdc++.h>

using namespace std;

const int N=1e6+5;
int prime[N],cnt,fct[N];
bool st[N];
int ans,x0;

int main(int argc, char** argv) {
	cin>>x0;
	for(int i=2;i<=x0;i++){
		if(!st[i]) prime[cnt++]=i, fct[i]=i;
		for(int j=0;prime[j]<=x0/i;j++){
			st[prime[j]*i]=true; fct[i*prime[j]]=fct[i];
			if(i%prime[j]==0) break;
		}
	}
	ans=x0;
	for(int i=x0-fct[x0]+1;i<=x0;i++){
		if(st[i]) ans=min(ans,i-fct[i]+1);
		else ans=min(ans,i);
	}
	cout<<ans<<endl;
	return 0;
}



全部评论

相关推荐

05-07 17:58
门头沟学院 Java
wuwuwuoow:1.简历字体有些怪怪的,用啥写的? 2.Redis 一主二从为什么能解决双写一致性? 3.乐观锁指的是 SQL 层面的库存判断?比如 stock > 0。个人认为这种不算乐观锁,更像是乐观锁的思想,写 SQL 避免不了悲观锁的 4.奖项证书如果不是 ACM,说实话没什么必要写 5.逻辑过期时间为什么能解决缓存击穿问题?逻辑过期指的是什么 其实也没什么多大要改的。海投吧
点赞 评论 收藏
分享
代码飞升:简历差不多情况下你的学历已经加分了,海投就行,加油,不要追求尽善尽美
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务