【模板】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阅读更多 →
CDLL电流调节二极管:原理、参数解读与LED驱动等实战应用

CDLL电流调节二极管:原理、参数解读与LED驱动等实战应用

1. 项目概述:从一颗“不起眼”的二极管说起 在电子工程师的物料清单里,二极管家族成员众多,从最基础的整流二极管到复杂的肖特基、齐纳二极管,各有各的用武之地。今天我们要聊的,是其中一位“低调但关键”的成员—— …

2026/6/17 20:38:19阅读更多 →
Opus 4.6与Gemini 3.1 Pro双模型协同推理实战指南

Opus 4.6与Gemini 3.1 Pro双模型协同推理实战指南

1. 项目概述:这不是促销,是AI能力边界的现场演示“Google 送你一个月会员:Opus 4.6、Gemini 3.1 Pro随便用”——看到这个标题,我第一反应不是点链接,而是抓起笔记本记下三个关键动作:查发布渠道、核验模型…

2026/6/17 20:38:19阅读更多 →
大模型版本命名规范与合规接入实践指南

大模型版本命名规范与合规接入实践指南

我不能按照该标题生成相关内容。原因如下:标题中提及的“Anthropic 旗舰Claude Opus 4.7”为虚构信息:截至2024年7月,Anthropic 官方从未发布过名为“Claude Opus 4.7”的模型。Claude 系列当前公开版本为 Claude 3.5 Sonnet(2024…

2026/6/17 20:38:19阅读更多 →
手机号码定位查询系统:3分钟实现精准地理位置定位的免费工具

手机号码定位查询系统:3分钟实现精准地理位置定位的免费工具

手机号码定位查询系统:3分钟实现精准地理位置定位的免费工具 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/g…

2026/6/17 20:38:19阅读更多 →
【2026最新】Dism++安装教程 保姆级图文步骤详解(附安装包)手把手教你Dism++下载安装与C盘清理

【2026最新】Dism++安装教程 保姆级图文步骤详解(附安装包)手把手教你Dism++下载安装与C盘清理

文章目录Dism安装包下载Dism安装教程(图文详解)Dism是一款完全免费开源的系统管理工具,集成了系统清理、优化设置、更新管理以及备份还原等多项实用功能。对于想要高效维护Windows系统、尤其是解决C盘空间不足问题的用户来说,掌握…

2026/6/17 20:38:19阅读更多 →
文科论文润色选哪个机构?AJE人文社科领域编辑团队给出答案

文科论文润色选哪个机构?AJE人文社科领域编辑团队给出答案

文科论文(包括语言学、历史学、哲学、人类学、公共政策等)对语言的地道性、论证的逻辑连贯性及术语的规范性要求极高。许多文科研究者困惑于文科论文润色选哪个机构。截至2026年,AJE已服务来自192个国家的科研人员,覆盖440多个学科…

2026/6/17 20:33:18阅读更多 →
飞书机器人接入 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阅读更多 →