原根 51nod 1135(原根)

Java农产品质量溯源大数据管理系统源码 产品追溯基于“一物一码”从工厂生产环节至销售阶段,赋予产品唯一的数码,并关联产品名称、批号、生产时间等信息,建立包装关联关系,为后期产品的追溯、营销搭建信息基础。 农产品溯源,从原材料收购、生产、加工质检到包装运输、终端门店销售等环节追溯,可以保证产品质量,监管部门和消费者都可以查询产品信息。对生产进行层层把关、一旦发现问题、立即进行处理、提升产品质量。 阅读详情

原根

设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数)
给出1个质数P,找出P最小的原根。

Input
输入1个质数P(3 <= P <= 10^9)
Output
输出P最小的原根。
Sample Input

3

Sample Output

2
题意:

求一个质数的最小原根

分析:

求模素数p原根的方法:

对p-1素因子分解,即p−1=pa11pa22⋯pakkp−1=p1a1p2a2⋯pkak

若恒有

gp−1p1≠1 (mod p)gp−1p1≠1 (mod p)

成立,则g就是模p的原根。(对于合数求原根,只需要把p-1换成ϕ(p)ϕ(p)即可)

对于这道题,从2到p-1枚举g即可

code:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
typedef long long ll;
const int maxn = 1e5+10;
bool isprime[maxn];
int prime[maxn],cnt;
void init(){
    cnt = 0;
    memset(isprime,true,sizeof(isprime));
    isprime[0] = isprime[1] = false;
    for(int i = 2; i < maxn; i++){
        if(isprime[i]){
            prime[cnt++] = i;
            for(int j = i + i; j < maxn; j += i){
                isprime[j] = false;
            }
        }
    }
}
int p[maxn],num;
void divide(int n){
    num = 0;
    for(int i = 0; i < cnt && prime[i] * prime[i] <= n; i++){
        if(n % prime[i] == 0){
            p[num++] = prime[i];
            while(n % prime[i] == 0) n /= prime[i];
        }
    }
    if(n > 1) p[num++] = n;
}
ll q_pow(ll a,ll b,ll mod){
    ll ans = 1;
    while(b){
        if(b & 1) ans = ans * a % mod;
        a = a * a % mod;
        b >>= 1;
    }
    return ans;
}
bool judge(ll tmp,ll P){
    for(int i = 0; i < num; i++){
        if(q_pow(tmp,(P-1)/(ll)p[i],P) == 1)
            return false;
    }
    return true;
}
int main(){
    init();
    int P;
    while(~scanf("%d",&P)){
        divide(P-1);
        for(ll i = 2; i <= P-1; i++){
            if(judge(i,(ll)P)){
                printf("%lld\n",i);
                break;
            }
        }
    }
    return 0;

}

Open3D KD-tree的使用【2025最新版】 Open3d使用FLANN构建KDTree以便进行快速最近邻检索。博客长期更新,本文最近一次更新时间为:2025年1月1日,代码已同步更新至Open3D 0.18.0版本。 阅读详情

相关推荐

Python经常遇到导入xlwings就出错,如何解决

Python经常在导入xlwings时遇到错误。有人建议尝试重装或升级xlwings,但这些操作后仍然无法解决导入错误问题。

felix_8的博客 1740

原根

对于两个正整数gcd(a,m)=1,由欧拉定理可知,存在正整数 d ≤ m-1, 比如说欧拉函数 d=φ(m),即小于等于 m的正整数中与 m互素的正整数的个数,使得 ad≡1(mod m)。 由此,在gcd(a,m)=1时,定义 a对模m的指数 δm(a)为使 ad≡1(mod m) 成立的最小的正整数 d。由前知 δm(a) 一定小于等于 φ (m),若δm(a) = φ(m),则称a是模

long-long-ago 3646

Stata实战:5步搞定PSM倾向得分匹配(附完整代码与常见报错解决)

本文详细介绍了使用Stata进行PSM(倾向得分匹配)的5步实战流程,包括数据预处理、模型构建、匹配算法选择、匹配质量诊断和结果解释。提供完整代码示例和常见报错解决方案,帮助研究者高效完成实证分析,提升匹配成功率。

weixin_29214559的博客 590

模为奇素数的原根求解

此问题的基本思路: 定理:设p为奇素数,p-1的所有不同素因数q1,¨¨¨qs,则g是模p原根的充要条件是 g的(p-1)/qi次幂(/≡)1(mod p),i=1,¨¨¨s (1)求任一原根g ①求p-1的素因数q1,¨¨¨qs ②求得e=(p-1)/q, q=q1,¨¨¨qs ③判断g的e次幂模p是否同余1,g为2,3,4,5,¨¨¨等,逐个

Whomio 3367

SAP MRKO与MIRO的对比分析:为何寄售结算需要定制开发?

本文深入分析了SAP系统中MRKO与MIRO在寄售结算中的功能差异,揭示了标准MRKO在财务控制和业务流程上的局限性。通过定制开发实践,如BAdI增强和界面优化,企业可显著提升结算效率与准确性。文章还探讨了未来SAP S/4HANA在寄售结算中的智能化趋势,为相关企业提供技术参考。

weixin_29300241的博客 419

基于CPCC_S_TASK_LIST_MAINTAIN的工艺路线组件批量分配实战与避坑指南

本文详细解析了SAP PP模块中基于CPCC_S_TASK_LIST_MAINTAIN函数实现工艺路线组件批量分配的实战技巧与避坑指南。针对批量分配的核心挑战,提供了参数配置、BAPI协同使用、Excel导入等解决方案,并分享了大容量数据处理优化经验,帮助用户高效完成工艺路线组件分配任务。

weixin_33563728的博客 305

51Nod 1135 原根

http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1135 分析:         元根的定义 设m是正整数,a是整数,若a模m的阶等

MM__1997的博客 692

Android AI Agent集成实战:架构设计与自动化技能开发

AI Agent(人工智能代理)是一种能够感知环境、自主规划并执行任务以达成目标的软件实体。其核心原理在于结合大语言模型的推理能力与工具调用(Tool Calling)技术,使应用从被动响应转向主动服务。在移动开发领域,这项技术的价值在于为应用注入“智能大脑”,实现跨应用自动化与个性化交互,从而显著提升用户体验和操作效率。具体到Android平台,其应用场景广泛,例如自动填写表单、智能聊天辅助、个性化工作流优化等。本文聚焦于Android AI Agent的工程化落地,深入探讨了如何利用Accessibil

weixin_42636895的博客 661

数论概论读书笔记 28.幂模p与原根

幂模p与原根 如果aaa和ppp互素,费马小定理告诉我们,ap−1≡1&nbsp;(mod&nbsp;p)ap−1≡1&nbsp;(mod&nbsp;p)a^{p-1}\equiv 1\ (mod \ p) 辣么这个指数p−1p−1p-1是唯一的使得结果为1的嘛 我们选一些aaa和ppp看一下 对于a=3,p=7a=3,p=7a=3,p=7 :指数只有为6时才取到1。 模p余1的a...

Feynman1999的博客 2588

ADS负载牵引仿真避坑指南:从零开始搞定Loadpull模板设置

本文是一份针对ADS负载牵引仿真的深度避坑指南,详细解析了Loadpull模板从初始化配置到结果解读的全过程。文章重点阐述了如何根据设计目标灵活设置扫描圆、采样点等关键参数,以解决仿真不收敛、结果不完整等常见问题,并指导读者在功率与效率之间做出理性权衡,最终提取出用于匹配网络设计的最优负载阻抗。

weixin_29234423的博客 595

视频生成工具本地部署完全指南:Seedance能装吗?有哪些开源替代?

本文系统介绍了视频生成模型的本地部署方案,分为三个部分:1)Seedance 2.0的混合部署模式,其开源组件可本地集成但核心功能需调用API;2)完全开源替代方案对比,包括LTX-2、Wan 2.1等模型的硬件需求与特点;3)详细部署指南,以ComfyUI+Wan 2.1为例,涵盖软件准备、模型整合、参数调优等步骤,并提供了显存优化和多GPU配置技巧。文章为需要离线视频生成能力的用户提供了完整技术路径。

小明的博客 1万+

数论之原根

简介: 原根是数论中一个非常重要的概念,它在密码学中有着很广泛的应用。原根从直观上非常好理解,数g对与p是原根,则(g^i)%p的结果互不相同,其中,i ∈ [1, p-1], g ∈ [2, p-1]。原根与整数的阶的关系非常密切,下面先从整数的阶讲起。

fuyukai的专栏 8717

漏检率从23%降至1.3%:YOLOv8交通车辆计数与违章识别完整落地方案

本文分享了基于YOLOv8+ByteTrack的交通视频分析系统实战经验,针对车辆计数和违章识别两大核心功能,提出了完整的工程化解决方案。系统采用边缘计算架构,单张GTX 1660即可稳定处理8路1080P视频流,实现了白天98.7%、夜间96%以上的车辆计数准确率。文章详细剖析了交通视频分析的四大落地痛点,系统架构设计思路,以及遮挡处理、光照适应、多路并发等关键技术优化方案,重点介绍了车辆计数三重校验机制和三类违章识别的工程实现细节。通过ROI裁剪、TensorRT加速、动态抽帧等优化手段,显著提升了系统

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 340

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

[51nod1135]原根

设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数) 给出1个质数P,找出P最小的原根。 Input 输入1个质数P(3<=P<=10^9)输入1个质数P(3<=P<=10^9) Output 输出P最小的原根。输出P最小的原根。 Input示例 33 Output示例 22 有一...

weixin_30955341的博客 134

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【51nod 1135】原根

设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数) 给出1个质数P,找出P最小的原根。 Input 输入1个质数P(3 &lt;= P &lt;= 10^9) Output 输出P最小的原根。 Input示例 3 Output示例 2 问题解决的是如何求一个质数的原根。,原根的定义我在之前的一篇文章写过,这里来讲是如何实现...

Coldfresh的博客 285

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【51NOD1135】原根(数论)

感谢ACdreamer1135 原根 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数) 给出1个质数P,找出P最小的原根。 Input输入1个质数P(3 <= P <= 10^9)Output输出P最小的原根。Input示例3Output示例2

No Program No Life 964

51nod 1135 求原根

51nod 1135 求原根 传送门 先把AC代码写了,有空再填坑。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+5; #define mst(a) memset(a,0,sizeof a) #define lx x<<1 #define rx x<<1|1 #define reg register ll ksm(ll a,ll n,ll p){ /

Harris-H的博客 591

【51nod 1135 原根】

题目链接:51nod 1135 原根原根戳这里:数论之原根Code#include <iostream> #include <cstdio> #include <algorithm> using namespace std; #define ll long long int primitive_root(int p); long long g_test(long long g, long long

storm9505的博客 340

51Nod 1135-原根(快速求解一个素数的原根)

题目地址:51Nod 1135 1.原根定义:设m>1,gcd(a,m)=1,使得成立的最小的r,称为a对模m的阶。 2.定理:如果模m有原根,那么他一共有个原根。 3.定理:如果p为素数,那么素数p一定存在原根,并且模p的原根的个数为个。 4.定理:假设m是正整数,a是整数,如果a模m的阶等于,则称a为模m的一个原根。 5.模m有原根的充要条件:m=2,4,P^a,2*P^a……. 求

Rocky0429 8992

原根、FFT练习题

51nod 1135 题目描述 求小于1e9的素数p的原根 #include &amp;amp;amp;lt;bits/stdc++.h&amp;amp;amp;gt; using namespace std; int pi[40]; int tot=0; int power(int x,int n,int p){ int base=x; int ans=1; while(n){ if(n&amp;amp;amp;amp;1){ ans=1ll

ACM, deep love 983

原根 学习笔记

主要参考这里: http://www.cnblogs.com/autsky-jadek/p/7496178.html https://blog.youkuaiyun.com/a27038/article/details/77203892 定义: 定义\(a\)模\(m\)的阶为,使得\(a^t\equiv1\ (mod\ m)\)成立的最小正整数\(t\)(\(a,m\)互质)。用\(\delta_m(a...

weixin_30437337的博客 130

51nod 1135 原根(原根)

题意 题目链接 Sol 可以证明素数的原根不会超过他的\(\frac{1}{4}\) 那么预处理出\(P - 1\)的所有的质因数\(p_1, p_2 \dots p_k\),暴力判断一下,如果$\exists i, a^{\frac{P - 1}{p_i}} \equiv 1 \pmod {P - 1} $ 那么说明\(a\)不是\(P\)的原根,因为根据原根的定义,需要保证\(P-1\)是第一...

weixin_34258782的博客 148

51Nod 1135 - 原根(数论)

【题目描述】 【思路】 一个素数 ppp 的原根有 p−1p-1p−1 个,求解方法是对 p−1p-1p−1 进行唯一分解,设 p−1=p1a1p2a2...pnanp-1=p_1^{a_1}p_2^{a_2}...p_n^{a_n}p−1=p1a1​​p2a2​​...pnan​​,则对于一个数 ggg,ggg 是模 ppp 原根的充要条件是 gp−1pi≠1&nbsp;(mod&nbsp;p...

Change the world by program. 357

51nod1135[原根]

转载地址:https://www.cnblogs.com/geloutingyu/p/6219868.html 思路:设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数)给出1个质数P,找出P最小的原根。 我们先了解一下阶的概念:满足 a^r Ξ (1 mod m) ---1 的最小 r 即为 a%m的阶,我们可以直接从小到大枚举a

binarycopycode 386

51nod1135原根

设 m 是正整数,a是整数,若a模m的阶等于φ(m),则称 a 为 模m的一个原根。(其中φ(m)表示m的欧拉函数) 阶:gcd(a,m)=1,使得成立的最小的 r,称为 a 对 模m 的 阶。 φ(m):在[1,m)的区间内与m互质的数的个数。 求模素数p的原根a的方法: 因为p为素数,所以φ(p)=p-1, 这题就是要找最小的a使得 a^(p-1)%p = 1 成立(根据费马小定理,该...

cgmm2333的博客 296
上一篇: Mod Tree(扩展BSGS)
下一篇: Primitive Roots(原根个数)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值