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

选素数--线性筛

利用线性筛找到最大质因数,然后找符合条件的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]>n) 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.kler.cn/a/602407.html

相关文章:

  • Kotlin泛型: 协变|逆变|不变
  • 目标跟踪评估及画图
  • 如何快速下载并安装 Postman?
  • 大模型——Text2SQL 的实现探究
  • css white-space: pre-line; 用处大
  • 路由工程师大纲-4:前后端知识体系梳理及联系
  • Java问题小记——入职心得
  • WordPress WooCommerce 本地文件包含漏洞(CVE-2025-1661)
  • deploy myEclipse j2ee project to server没反应
  • JVM方法逃逸
  • 鸿蒙北向源码开发: xts用例单部件编译并执行测试用例
  • 树莓派ollama docker报错尝试网上方法
  • 构建一个解释器的完整过程:以C语言为核心的技术探索
  • Ymodem调试笔记
  • 线下媒体邀约
  • 在 Ubuntu 20.04 上重新启动网络
  • air780eq 阿里云
  • 《网络安全等级测评报告模版(2025版)》
  • Qt高分屏自适应
  • tensorboard报错MessageToJson() got an unexpected keyword argument