【模板】Pollard-Pho算法【牛客tracker  每日一题】
【模板】Pollard-Pho算法时间限制1秒 空间限制256M网页链接牛客tracker牛客tracker 每日一题完成每日打卡即可获得牛币。获得相应数量的牛币能在【牛币兑换中心】换取相应奖品助力每日有题做丰盈牛币日益多题目描述判断一个正整数x xx是否是质数。特别的这个x xx可能很大。输入描述本题每组输入包含多组测试用例。输入的第一行包含一个正整数T 1 ≦ T ≦ 10 5 T1≦T≦10^5T1≦T≦105测试用例数。接下来T TT行每行一个正整数x 1 ≦ x ≦ 10 12 x1≦x≦10^{12}x1≦x≦1012表示需要判定是否是质数的数。输出描述对于每组测试用例如果对应的x xx为质数输出Y e s YesYes否则输出N o NoNo。示例1输入4 1000000007 998244353 114514 7输出Yes Yes No Yes解题思路本题是大整数素性判定模板题数值范围可达10 12 10^{12}1012采用Miller-Rabin 素性测试算法高效求解。该算法基于费马小定理与二次探测定理通过多轮概率测试可实现指定范围内的确定性素数判定远优于试除法的效率。算法核心原理对于奇素数n nn可将n − 1 n-1n−1分解为d × 2 s d \times 2^sd×2sd dd为奇数。任选底数a aa若a d ≡ 1 ( m o d n ) a^d \equiv 1 \pmod nad≡1(modn)或存在0 ≤ r s 0 \le r s0≤rs使得a d × 2 r ≡ − 1 ( m o d n ) a^{d \times 2^r} \equiv -1 \pmod nad×2r≡−1(modn)则n nn通过本轮素性测试。选择固定小质数集合作为底数在10 12 10^{12}1012范围内可实现 100% 准确的判定。具体执行步骤边界预处理小于 2 直接判定为非素数2、3 直接判定为素数所有偶数直接排除。分解指数将n − 1 n-1n−1不断除以 2得到奇数d dd即n − 1 d × 2 s n-1 d \times 2^sn−1d×2s。多轮测试选取底数集合{2,3,5,7,11,13,17,19,23,29,31,37}对每个底数执行完整测试计算a d m o d n a^d \bmod nadmodn若结果既不是 1 也不是n − 1 n-1n−1则反复平方进行二次探测若始终无法得到n − 1 n-1n−1则判定为合数。结果输出所有底数测试通过则判定为素数否则为合数。大整数乘法通过__int128实现避免 64 位整数相乘溢出。单个数判定的时间复杂度为O ( k log ⁡ n ) O(k\log n)O(klogn)k kk为底数个数可轻松应对十万级测试用例。总结核心逻辑基于数论定理的 Miller-Rabin 素性测试通过固定底数集合实现万亿级数值的确定性素数判定。关键操作分解n − 1 n-1n−1为奇因子乘 2 的幂、快速幂模运算、二次探测校验、__int128处理大数乘法防溢出。效率保障常数轮测试 对数级运算量无冗余计算完美适配大数据量与大数值范围。代码简要说明快速幂函数pmod实现模意义下的快速幂运算乘法步骤使用__int128强制转换彻底解决大整数相乘溢出问题保证运算正确性。素性判定函数isp处理边界情况小数值、偶数快速返回结果。分解n − 1 n-1n−1为奇数d dd剥离所有 2 的因子。遍历固定底数集合逐轮执行 Miller-Rabin 测试任意一轮不通过则直接判定为合数。全部测试通过则判定为素数。主函数逻辑关闭同步流加速输入输出读取T TT组测试用例逐个调用素性判定函数按要求输出Yes或No。代码内容#includebits/stdc.husingnamespacestd;#defineendl\ntypedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvvt;typedefpairll,llpll;constll N1e310;constll INF1e18;constll M1e610;constll mod1e97;llpmod(ll a,ll b,ll md){ll r1;a%md;while(b0){if(b1)r(__int128)r*a%md;a(__int128)a*a%md;b1;}returnr;}boolmrchk(ll d,ll n){ll a2rand()%(n-4);ll xpmod(a,d,n);if(x1||xn-1)returntrue;while(d!n-1){x(__int128)x*x%n;d*2;if(x1)returnfalse;if(xn-1)returntrue;}returnfalse;}boolisp(ll n){if(n2)returnfalse;if(n2||n3)returntrue;if(n%20)returnfalse;ll bs[]{2,3,5,7,11,13,17,19,23,29,31,37};ll dn-1;while(d%20)d/2;for(ll a:bs){if(na)returntrue;if(pmod(a,d,n)!1){ll td;boolokfalse;while(tn-1){if(pmod(a,t,n)n-1){oktrue;break;}t*2;}if(!ok)returnfalse;}}returntrue;}voidsol(){ll x;cinx;cout(isp(x)?Yes:No)endl;}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll T;cinT;while(T--)sol();return0;}

相关新闻

Gigabit TAP探针硬件连接与JTAG/OnCE接口设计实战指南

Gigabit TAP探针硬件连接与JTAG/OnCE接口设计实战指南

1. 项目概述:从接口指示灯到引脚定义,一次搞懂Gigabit TAP探针硬件连接在嵌入式硬件调试的世界里,一个稳定、可靠的调试连接是工程师与目标芯片“对话”的生命线。无论是追踪一个诡异的时序Bug,还是单步执行分析程序崩溃点&#x…

2026/6/17 12:05:38阅读更多 →
Agent安全防护:Prompt Injection与越狱攻击防御方案

Agent安全防护:Prompt Injection与越狱攻击防御方案

Agent 安全防护:Prompt Injection 与越狱攻击防御方案 一、引言:当 AI Agent 成为攻击目标 2023年底,一个名为「Indirect Prompt Injection」的攻击概念在安全圈引起轩然大波——攻击者通过一封精心构造的邮件,就让 Bing Chat 将用户的浏览器 Cookie 回传到了攻击者的服务…

2026/6/17 12:05:38阅读更多 →
Claude 4.5国内直连实操指南:稳定接入、模型选型与工作流落地

Claude 4.5国内直连实操指南:稳定接入、模型选型与工作流落地

1. 这不是“翻墙指南”,而是一份面向国内AI实践者的Claude 4.5直连使用手册我从2023年第一批接触Claude 3开始,就一直在国内环境里摸着石头过河。当时用官方网页要反复刷新十几次才进得去,输入一段代码等三分钟没响应是常态,更别说…

2026/6/17 12:00:38阅读更多 →
海泰克触摸屏软件ADP V6.8.0:组态、通信与维护实战指南

海泰克触摸屏软件ADP V6.8.0:组态、通信与维护实战指南

1. 项目概述:海泰克触摸屏软件的核心价值 在工业自动化现场,触摸屏作为人机交互的核心枢纽,其重要性不言而喻。它不仅是操作员下达指令的窗口,更是设备状态、生产数据、报警信息的集中展示平台。提到触摸屏品牌,大家可…

2026/6/17 16:14:15阅读更多 →
阿里云文件存储NAS多服务器共享完全指南:从挂载到性能调优

阿里云文件存储NAS多服务器共享完全指南:从挂载到性能调优

1. 引言:为什么需要共享文件存储 在传统的单服务器架构中,应用程序的数据通常存储在服务器的本地磁盘上。然而,当业务规模增长到需要多台服务器协同工作时,本地存储的局限性就暴露出来了——每台服务器都有自己的文件系统&#x…

2026/6/17 16:14:15阅读更多 →
MC33932双H桥评估板实战:从开箱到PWM调速与故障诊断

MC33932双H桥评估板实战:从开箱到PWM调速与故障诊断

1. 从零上手:MC33932双H桥评估板开箱与核心认知如果你正在寻找一款能够驱动两个直流电机、峰值电流可达5A、并且自带丰富保护功能的集成驱动芯片,那么飞思卡尔(现恩智浦)的MC33932绝对是一个绕不开的经典选择。而KIT33932EKEVBE这…

2026/6/17 16:14:15阅读更多 →
Gemini 3.0零基础实操指南:办公学习高频任务一键提效

Gemini 3.0零基础实操指南:办公学习高频任务一键提效

1. 项目概述:这不是又一个“AI工具介绍”,而是一份能让你今天就用上Gemini 3.0解决真实问题的操作手册Gemini 3.0不是概念,不是预告片,它已经上线,且正在被大量一线办公族、学生、自由职业者悄悄用来改写周报、拆解论文…

2026/6/17 16:14:15阅读更多 →
当 4TB 生物特征数据泄露:AI 时代数据安全的“阿喀琉斯之踵”与防御指南

当 4TB 生物特征数据泄露:AI 时代数据安全的“阿喀琉斯之踵”与防御指南

当 4TB 生物特征数据泄露:AI 时代数据安全的“阿喀琉斯之踵”与防御指南 最近,一起涉及 4TB 语音样本的数据泄露事件在技术圈引发了剧烈震动。据报道,约 4 万名 AI 合约工作者的生物特征数据在此次事件中被窃取。这不仅仅是一次普通的数据泄露…

2026/6/17 16:14:15阅读更多 →
SH9自指螺旋拓扑框架:核工程与能源领域的拓扑应用(世毫九实验室原创研究)

SH9自指螺旋拓扑框架:核工程与能源领域的拓扑应用(世毫九实验室原创研究)

SH9自指螺旋拓扑框架:核工程与能源领域的拓扑应用(世毫九实验室原创研究) 作者:方见华 单位:世毫九实验室 本文基于自指螺旋理论的色拓扑禁闭、剩余耦合与拓扑共振公理,将核物理的拓扑基础落地到能源应用场…

2026/6/17 16:03:45阅读更多 →
飞书机器人接入 OpenClaw 完整落地部署指南(含安装包)

飞书机器人接入 OpenClaw 完整落地部署指南(含安装包)

OpenClaw 2.7.9 对接飞书机器人完整配置教程 本文讲解借助长连接模式打通 OpenClaw 与飞书的操作流程,配置完成后,可在飞书私聊、群组内发送指令,调用本地 AI 实现电脑自动化操作。整体流程分为飞书平台创建应用、权限配置、密钥填写三大环节…

2026/6/17 10:40:20阅读更多 →
嵌入式处理器技术演进与飞思卡尔实战解析:从架构选型到系统设计

嵌入式处理器技术演进与飞思卡尔实战解析:从架构选型到系统设计

1. 嵌入式处理器:从“大脑”到“神经系统”的进化 在电子设备无处不在的今天,我们很少会去思考一个智能设备是如何“思考”和“行动”的。无论是汽车引擎的精准控制、工厂机械臂的流畅运转,还是智能家居的自动响应,其背后都离不开…

2026/6/17 10:40:20阅读更多 →
如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南

如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南

如何高效使用BallonTranslator:3分钟完成漫画翻译的完整实用指南 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地…

2026/6/17 10:40:20阅读更多 →