POJ-2689 Prime Distance(两次素数筛+偏移处理)

XC95144XL-10TQG144I Xilinx XC9500XL 高性能 CPLD XC95144XL-10TQG144I 属于 Xilinx 的 XC9500XL 高性能 CPLD 家族,是一颗面向 3.3V 低电压系统的可编程逻辑器件。该器件以小封装、高速响应和良好的系统兼容性为设计目标,常用作系统控制/ glue-logic、I/O 缓冲、状态机、总线桥接与接口协议前端等场景中的可重编程逻辑单元。产品支持现场(in-system)编程与 IEEE-1149.1 JTAG 边界扫描,能在系统板上直接更新逻辑。 阅读详情

题目链接:点击打开链接

题意:求区间[a,b]内距离最小的两个素数和距离最大的两个素数。若存在就输出它们的信息,不存在输出"There are no adjacent primes."

分析:由于a和b的范围可达到int上限,如果采取常规素数筛空间是不够用的,只能采取其它的思路。要筛出int范围内的合数,这些合数的最小质因子一定是小于INF^0.5(小于50000),可以先用常规线性筛筛出50000以内的素数,再利用这些素数筛a到b之间的合数即可,因为b-a不大于10^6,筛选合数时将所有数向左偏移a才能不爆内存。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=50005;
const int maxnum=1000005;
bool pri[maxn];   //pri[i]=true表示i是素数
int primes[maxn];//primes[i]表示50000以内第i个素数
bool s[maxnum];  //s[i-a]=true表示i是合数
int k=1;
void solve1()  //筛选出50000以内的素数
{
    memset(pri,true,sizeof pri);
    for(int i=2;i<maxn;i++)
    {
        if(pri[i])
        {
            primes[k++]=i;
            for(int j=i+i;j<maxn;j+=i)
                pri[j]=false;
        }
    }
}
void solve2(int a,int b)//筛出a到b以内的合数
{
    for(int i=1;i<k;i++)
    {
        int p=(a-1)/primes[i]+1;
        int q=b/primes[i];
        for(int j=p;j<=q;j++)
        {
            if(j>1)
            s[j*primes[i]-a]=true;//表示j*primes[i]是合数,这里采取了偏移
        }
    }
}
int main()
{
    int a,b;
    solve1();
    while(~scanf("%d%d",&a,&b))
    {
        if(a==1) a++;
        memset(s,false,sizeof s);
        solve2(a,b);
        int min1=0,min2=0,max1=0,max2=0;
        int sum1=0x3f3f3f3f,sum2=-1;
        int t=-1;
        for(int i=0;i<=b-a;i++)  //求出距离最小的两个素数和距离最大的两个素数
        {
            if(!s[i])
            {
                if(t>=0)
                {
                    if(sum1>i-t)//i-t表示两素数之间的距离
                    {
                        sum1=i-t;
                        min1=t+a;
                        min2=i+a;
                    }
                    if(sum2<i-t)
                    {
                        sum2=i-t;
                        max1=t+a;
                        max2=i+a;
                    }
                }
                t=i;
            }
        }
        if(min1==0||min2==0||max1==0||max2==0)
            printf("There are no adjacent primes.\n");
        else
            printf("%d,%d are closest, %d,%d are most distant.\n",min1,min2,max1,max2);
    }
    return 0;
}


315、弱电基础知识介绍 常见的弱电系统包括:闭路电视监控系统、防盗报警系统、门禁系统、电子巡更系统、停车场管理系统、可视对讲系统、家庭智能化系统及安防系统、背景音乐系 统、LED显示系统、等离子拼接屏系统、DLP大屏系统、三表抄送系统、楼宇自控系统、防雷与接地系统、寻呼对讲及专业对讲系统、弱电管道系统、UPS不 间断电源系统、机房系统、综合布线系统、计算机局域网系统、物业管理系统、多功能会议室系统、有线电视系统、卫星电视系统、卫星通讯系统、消防系统、电话 通讯系统、酒店管理系统、视频点播系统、人力资源管理系统等等。 阅读详情

相关推荐

SAP S4 MM模块自动记账全流程解析:从评估范围到科目分组的实战配置

本文深入解析SAP S4 MM模块自动记账的全流程,从核心概念评估范围与评估控制入手,详细阐述了评估类、科目分组等关键配置的逻辑关系。通过实战配置步骤,指导如何建立从物料移动(如收货、发料)到自动生成准确财务凭证的完整体系,确保库存价值与总账实时同步,为企业构建可靠的财务业务一体化基石。

weixin_29313547的博客 424

【POJ 2689】Prime Distance(素数筛法)

题目链接 【POJ 2689】Prime Distance 题解 题目的关键在于如何求出lll到rrr之间所有的素数。 性质:如果一个数nnn是合数,则它一定有一个≤n‾√≤n\le \sqrt n的素因子。 思路:先筛出222到r√r\sqrt r的所有素数pipip_i,在一一标记lll到rrr中所有pipip_i的倍数。 时间复杂度 O(q∑素数p≤r√r−lp)O(q∑素...

Galaxy Coder 的博客 574

FreeCAD MCP实战:用自然语言驱动AI建模,效率提升10倍

MCP(Model Context Protocol)是一种让AI模型调用外部工具和数据的协议标准,通过标准化通信层解决AI与CAD软件之间的交互难题。其原理是向AI暴露工具清单,AI根据自然语言需求自动选择工具并填充参数。在工程实践中,这一技术显著降低了CAD建模门槛,将重复性操作从手动点击转为语音指令,适用于批量零件生成、参数化设计等场景。FreeCAD作为开源CAD,凭借开放的Python API和脚本化能力,成为落地MCP的理想平台。本文基于FreeCAD MCP的实操经验,分享环境搭建、自然语言建

weixin_31188927的博客 325

质数距离(poj2689——PrimeDistance)

给定两个整数L和U,你需要在闭区间[L,U]内找到距离最接近的两个相邻质数C1和C2(即C2-C1是最小的),如果存在相同距离的其他相邻质数对,则输出第一对。 同时,你还需要找到距离最远的两个相邻质数D1和D2(即D1-D2是最大的),如果存在相同距离的其他相邻质数对,则输出第一对。 输入格式 每行输入两个整数L和U,其中L和U的差值不会超过1000000。 输出格式 对于每个L和U ,输出一个结...

wait 808

Unity FPS射击控制系统:数据驱动的武器行为解耦方案

在Unity第一人称射击(FPS)开发中,射击系统常因输入、状态、行为耦合导致连发异常、换弹冲突与网络同步失准。其本质是缺乏对‘武器行为’(如后坐力曲线、弹药逻辑)与‘射击控制’(如输入合法性校验、冷却调度)的正交分离。本方案基于ScriptableObject实现WeaponData数据资产化,配合ShootingController状态机服务,达成输入解耦、运行时参数可调、协程受控、网络预测友好等工程目标。适用于中大型FPS项目架构升级与数据驱动转型,尤其解决Unity InputSystem与物理反馈

weixin_30536861的博客 610

基于单片机红外线遥控Proteus仿真电路发射接收

*单片机设计介绍,基于单片机红外线遥控Proteus仿真电路发射接收。

2201_75940997的博客 3943

【poj2689】Prime Distance 素数

题意:给出了T组询问,每次询问给出L,R,求出每次[L,R]间相差最大以及最小的相邻素数。 题解:由于L,R都很大所以没法直接用欧拉筛筛到。但是我们注意到L,R的差为1e6,可以用数组存下。并且我们可以知道任意一个合数n都拥有一个不大于sqrt(n)的素因数,所以我们可以预处理出1~2^16的所有质数,每次用这些质数筛出来l,r区间的质数,并且存在数组[0,u-l]中即可。 #inclu...

Mininda 511

保姆级教程:用sw_urdf_exporter插件将Solidworks机械臂模型转为ROS可用的URDF

本文提供了一份详细的保姆级教程,指导用户使用sw_urdf_exporter插件将Solidworks机械臂模型转换为ROS可用的URDF文件。从环境准备、插件配置到模型预处理和关键参数设置,再到ROS环境集成测试和性能优化,全面覆盖了机械臂URDF转换的全流程。特别适合机器人工程师和ROS开发者快速实现Solidworks模型到ROS环境的无缝迁移。

weixin_29300931的博客 400

POJ2689——Prime Distance(大区间素数筛)

题目链接         题目要求给定区间内求最小和最大间距的素数对,如果没有则输出 There are no adjacent primes.但由于给定区间太大,所以不可能在给定的区间内直接暴力,而要先求出给定区间内的素数,由于区间大小不超过1000000,所以可以对该区间用素数筛法,因为区间在21亿,所以区间内的合数的质因子都在2~√2147483647内,所以先素数筛出1到50000内

Jason_crawford的博客 709

【DaVinci Developer专题】-23-IDT高阶应用:结构体类型的数组

共8页 目录 1 创建一个Record IDT 2 创建一个Array IDT 3 创建一个S/R Port Interface 4 创建一个Constant 5 导入CFG生成代码的总结 6 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键字: 缩略语/术语 含义 DEV DaVinci Developer .

「汽车电子助手」的博客 1669

《AI应用架构师:解锁AI智能体于经济学研究洞察经济趋势的关键密码》

当经济学家还在为“疫情后的消费复苏曲线”“ChatGPT对就业的长期影响”等非线性问题挠头时,AI应用架构师已经用AI智能体搭建了一个“数字经济沙盘”:里面有会砍价的消费者、会算成本的企业、会调政策的政府,每个智能体像真实角色一样思考决策,甚至能模拟出“政策出台3个月后失业率的微妙变化”。这篇文章将带你从架构师视角拆解:如何用AI智能体破解经济学研究的3大痛点(数据爆炸、非线性复杂、动态演化)?如何设计能“活起来”的经济智能体?如何用智能体模拟出能指导现实的经济趋势?

AI天才研究院 902

POJ 2689 Prime Distance

题目链接~~> 做题感悟:这题是在学习了区间筛法后才做的,学习了区间筛素数后,这题真 so easy ! 解题思路:可以用两次筛法,也可以直接用区间平移。 代码: #include #include #include #include #include #include #include #include #include #include #include using namespace

Muti-Agent 2282

vue项目表格甘特图开发

🧩 甘特图可以管理项目进度,生产进度等信息,管理者可以更直观的查看内容。

qq_35946021的博客 991

POJ 2689 Prime Distance(大区间素数筛法,两次筛法)

题目链接:http://poj.org/problem?id=2689 题意:求一个区间 [L,U] 内的差值最大的和差值最小的相邻素数对。(1 题解: 维基百科:埃拉托斯特尼筛法 单纯打表是不行的,L,U的范围太大,不能直接求出所有素数。对于int范围内的合数来说,最小质因子必定小于2^16。所以先用筛法选出50000内的素数即可,因为50000的平方大于int范围了。再用这些素数去筛出

Keaper的博客 2082

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

poj2689Prime Distance

数论之素数。 题意:给定一个区间范围问此范围内所有相邻素数对之间最小的与最大的。 看数据先:lu(及区间范围)为1-int最大值,区间长度不超过1000000.如果按照一般素数筛,则素数太多不可直接算出,况且无法卡数组那么大。所以做一个预处理,也是这个算法核心之一。 先求出1到50000内所有素数(由于lu在interesting范围内,int合数最大的素数因子小于50000)。这是预处理 然后素...

weixin_43331783的博客 147

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

POJ 2689 Prime Distance(大区间素数筛)

Description The branch of mathematics called number theory is about properties of numbers. One of the areas that has captured the interest of number theoreticians for thousands of years is the questio...

aaHua_ 208

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

poj 2689 Prime Distance (区间素数筛法)

大体题意:给你两个数l,u同时l,u在int以内(会很大),但是区间长度不会超过1e6;让你找到在这个区间内相邻素数距离最大与最小 第一想法就是暴力l,u所有素数但是l,u都太大数组筛法的话筛不到。 处理方法:就是先找到sqrt(u)以内的素数,然后就可以按这个区间内的素数找到对称区间内的合数(即[sqrt(u),u]内的合数)其余的就是素数了。然后你就只需要用另一个数组标记[l,u] (偏移l后...

一棵小红树 272

POJ - 2689 Prime Distance(二次素筛)

传送门 因为一个非素数是被它的最小素数因子筛掉,214748364721474836472147483647内的数要么是素数,要么是能被sqrt(2147483647)sqrt(2147483647)sqrt(2147483647)内的素数整除的合数,也就是说,[l,r][l,r][l,r]区间的所有非素数的素数因子都在sqrt(2147483647)sqrt(2147483647)sqrt(2147483647)内,预先将sqrt(2147483647)sqrt(2147483647)sqrt(2147

Happig的博客 170

POJ 2689 Prime Distance (区间大数素数)

题目链接:http://poj.org/problem?id=2689 题目大意:给两个数L,R,问【L,R】之间的相邻两个素数最大相差多少,最少相差多少。1&lt;= L&lt; R&lt;=1e9      1&lt;=R - L&lt;=1e6 样例: 2 17 2-17素数有 2,3,5,7,11,13,17 。 2和3相差最小,7和11相差最大为4,13和17也为4,题目要求取...

qq_41645482的博客 240

poj 2689 Prime Distance 素数

题意:输入区间[l,u],其中l和u为int范围的整数,区间最大为1000000。求出[l,u]中,相邻素数只差最大和最小的素数对。当存在多个时,输出较小的素数对。 题解:l,u范围太大,不能直接求int范围的素数。而区间间隔比较小,只有1e6,而且对于int范围内的合数来说,最小质因子必定小于2^16。所以可以求出[l,u]中合数,转而求出素数,然后暴力枚举所有素数对即可。 如何求区间[l,

冷月之殇 5598

POJ-2689 Prime Distance 区间筛法

区间筛法:L~R,先筛出根号R的素数,再用这些素数把L ~ R的合数筛掉,剩下就是素数,适合R大,区间小的素数区间。 题目链接: http://poj.org/problem?id=2689 题意: 给出一个区间 [l, r] 求其中相邻的距离最近和最远的素数对 . 其中 1 <= l < r <= 2,147,483,647, r - l <= 1e6 . 思路: 素数...

FreeGo~ 275

poj 2689 Prime Distance

Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 29401 Accepted: 7556 Description The branch of mathematics called number theory is about properties of numbers. One...

113

poj_2689_Prime Distance

The branch of mathematics called number theory is about properties of numbers. One of the areas that has captured the interest of number theoreticians for thousands of years is the question of pr...

awang50683的博客 124

Prime Distance POJ - 2689

一、内容 题意:给定一个区间【L, R】 求在这个区间里面相邻2个质数的差值最小,差值最大 。 二、思路 由于【L, R】的值可能很大,目前已知的筛法都无法在规定时间内完成,但是R - L的值很小,并且任何一个合数N必定包含一个不超过N\sqrt{N}N​的一个质因子,故我们只需要用2~N\sqrt{N}N​内质因子筛出【L, R】内的质数。 离散化:由于L,R 过大,所以我们通过当前数为i减去...

Tizzi的博客 485

POJ 2689 - Prime Distance 任意区间内筛素数

和1~n范围内筛素数差不多...只不过对于每个素数加了一个偏移量了..比如在5 10这个区间..筛掉2的倍数..那么从6开始剔除...由于题目所给的数据..最大的合数..其质因子不会大于10^5..所以先用传统的筛素数法把1~10^5内的素数找出..然后再来筛[L,U]这个区间的素数... Program: #include #include #include #include #in

zzyzzy12 779

[题解](区间质数筛)POJ_2689 Prime Distance

区间筛素数:先筛出1~sqrt(R)的素数,然后对于每个询问只要用这些素数筛掉区间内的合数即可。 几个细节:1.特判和1有关的一些情况 2.每次减去L偏移量,数组只开区间大小 3.POJ无法使用万能头文件(需要火星救援(大雾 #include<iostream> #include<cstdio> #include<cstring> u...

weixin_30289831的博客 89
上一篇: codeforces-385C Bear and Prime Numbers(素数筛选法+维护前缀和)
下一篇: POJ-3974 Palindrome(manacher算法)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值