当前位置: 首页 > news >正文

选素数--线性筛

利用线性筛找到最大质因数,然后找符合条件的ans

#include <bits/stdc++.h>
using namespace std;
#define N 100011
#define M 1000011
#define inf 0x3f3f3f3f
typedef long long ll;
typedef pair<ll,int> PII;
int n,m,q,ans;
int arr[M];
int prime[M];
int f[M]; 
void xxs(int x)///线性筛 
{
	int pos=0;
	for(int i=2;i<=x;i++)
	{
		if(!arr[i]) prime[++pos]=f[i]=i;
		for(int j=1;j<=pos;j++)
		{
			if(i*prime[j]>x) break;///范围
			arr[i*prime[j]]=1;
			f[i*prime[j]]=max(f[i],prime[j]);///重点-记录最大质因数 
			if(i%prime[j]==0) break; ///最小质因数 
		}
	}
}
int get(int x)
{
	if(!arr[x]) return inf;///素数百搭就inf 
	return x-f[x]+1;///复合条件的公式 
}
int main()
{
	
		cin>>n;
		xxs(M);
		ans=inf;
		for(int i=get(n);i<=n;i++)///在这个范围遍历 
		{
			ans=min(ans,get(i));
		}
		if(ans>=inf) cout<<-1;
		else cout<<ans;
  		return 0;
}

http://www.dtcms.com/a/91464.html

相关文章:

  • 网络基础-路由器和交换机工作配置
  • Redis--redis客户端
  • NodeJs之fs模块
  • Gunicorn部署指南:核心参数详解与实践
  • (UI自动化测试web端)第二篇:元素定位的方法_css定位之ID选择器
  • 【Spring AI】基于专属知识库的RAG智能问答小程序开发——功能优化:用户鉴权主体功能开发
  • 从输入 URL 到页面加载完成,发生了什么?
  • sql结尾加刷题
  • 【LeetCode 题解】算法:4.寻找两个正序数组的中位数
  • Spring WebSecurityCustomizer 的作用
  • Resume全栈项目(一)(.NET)
  • wokwi arduino mega 2560 - 键盘与LCD显示
  • Go语言中context.Context的
  • DM9162使用记录
  • [计算机三级网络技术]第十一章:网络管理技术
  • Spring WebFlux之ServerWebExchange
  • 从LLM到AI Agent的技术演进路径
  • Qt图形视图框架在项目中的应用
  • 涅槃上岸,入陕进军,复试全程流程开启!
  • C语言编译为可执行文件的步骤
  • Win32 / C++ Windows文件夹路径获取
  • mysql 入门
  • 多层感知机从0开始实现
  • Java设计模式之解释器模式
  • ofd转pdf报错:org.ofdrw.reader.ZipUtil.unZipFileByApacheCommonCompress【已解决】
  • web爬虫笔记:js逆向案例十一 某数cookie(补环境流程)
  • C#委托介绍
  • 算法数论.3(拓展欧几里得,中国剩余定理)
  • 搭建第一个Spring项目
  • 题解:AT_abc170_f [ABC170F] Pond Skater