timus 1268 原根

简介:

题意:求K个素数pi对应的ni。ni满足:ni,ni^2,ni^3,...,ni^m对pi取模各不相同(i=1,2,3,...),且m最大,ni最大。

理论基础: 原根的定义:首先,对于互质的两个整数a,m。必然存在:d<=m-1,使得:a^d=1(mod m),比如说:d=phi(m)。我们定义a对m的阶为所有满足a^d=1(mod m)的d中最小的一个正整数。如此一来,如果a对m的阶为phi(m),那么我们称a为m一个原根。

     原根性质定理:如果a为m的原根,记它的阶为ord,那么:a,a^2,a^3,...,a^ord对m取模的值各不相同。

     定理1:对于整数a,与素数m,则a,a^m对m取模的结果相同(费马小定理)。

     定理2:可以证明,如果正整数(a,m)=1和正整数 d 满足a^d=1(mod m),则ord整除d。

定理:如果p为素数,那么素数p一定存在原根,并且p的原根的个数为phi(p-1).

设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根.


假设一个数g对于P来说是原根,那么g^i mod P的结果两两不同,且有 1<g<P, 0<i<P,那么g可以称为是P的一个原根,归根到底就是g^(P-1) = 1 (mod P)当且

仅当指数为P-1的时候成立.(这里P是素数).

求原根目前的做法只能是从2开始枚举,然后暴力判断g^(P-1) = 1 (mod P)是否当且当指数为P-1的时候成立。而由于原根一般都不大,所以可以暴力得到.

 

求一个奇素数的所有原根方法。

设g是P的平方非剩余,是P-1的标准分解式,若恒有成立,

则g就是P的原根。

#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define maxn 70000
bool isprime[maxn];
int prime[maxn],nprime;
void getprime()
{
    long long i,j;
    memset(isprime,1,sizeof(isprime));
    nprime=0;
    for(i=2; i<maxn; i++)
        if(isprime[i])
        {
            prime[nprime++]=i;
            for(j=i*i; j<maxn; j+=i)isprime[j]=0;
        }
}
long long exp_mod(long long a,long long  b,long long c)
{
    a%=c;
    long long ans=1;
    while(b)
    {
        if(b&1)ans=ans*a%c;
        b>>=1,a=a*a%c;
    }
    return ans;
}
bool judge(int yl,int n)
{
    int x=n-1;
    for(int i=0; prime[i]<=x; i++)
        if(x%prime[i]==0)
            if(exp_mod(yl,x/prime[i],n)==1)
                return 0;
    return 1;
}
int main()
{
    int t,n;
    getprime();
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        for(int i=n-1; i>0; i--)
            if(judge(i,n))
            {
                printf("%d\n",i);
                break;
            }
    }
    return 0;
}



目录
相关文章
|
3月前
|
监控 网络安全 数据安全/隐私保护
Mac服务器ssh连接工具
Mac服务器ssh连接工具
97 2
|
6月前
|
虚拟化 Docker 容器
【Docker】Docker容器和虚拟机的区别是什么?
【4月更文挑战第20天】【Docker】Docker容器和虚拟机的区别是什么?
|
6月前
一种pug与html相互转换的工具
一种pug与html相互转换的工具
79 0
|
弹性计算 运维 安全
一文看完“阿里云自动化运维沙龙 · 上海专场”干货演讲
与20位阿里云技术大牛面对面是一种什么体验?
一文看完“阿里云自动化运维沙龙 · 上海专场”干货演讲
|
4天前
|
弹性计算 双11 开发者
阿里云ECS“99套餐”再升级!双11一站式满足全年算力需求
11月1日,阿里云弹性计算ECS双11活动全面开启,在延续火爆的云服务器“99套餐”外,CPU、GPU及容器等算力产品均迎来了全年最低价。同时,阿里云全新推出简捷版控制台ECS Lite及专属宝塔面板,大幅降低企业和开发者使用ECS云服务器门槛。
|
21天前
|
存储 弹性计算 人工智能
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾
阿里云弹性计算产品线、存储产品线产品负责人Alex Chen(陈起鲲)及团队内多位专家,和中国电子技术标准化研究院云计算标准负责人陈行、北京望石智慧科技有限公司首席架构师王晓满两位嘉宾,一同带来了题为《通用计算新品发布与行业实践》的专场Session。本次专场内容包括阿里云弹性计算全新发布的产品家族、阿里云第 9 代 ECS 企业级实例、CIPU 2.0技术解读、E-HPC+超算融合、倚天云原生算力解析等内容,并发布了国内首个云超算国家标准。
阿里云弹性计算_通用计算专场精华概览 | 2024云栖大会回顾
|
3天前
|
人工智能 弹性计算 文字识别
基于阿里云文档智能和RAG快速构建企业"第二大脑"
在数字化转型的背景下,企业面临海量文档管理的挑战。传统的文档管理方式效率低下,难以满足业务需求。阿里云推出的文档智能(Document Mind)与检索增强生成(RAG)技术,通过自动化解析和智能检索,极大地提升了文档管理的效率和信息利用的价值。本文介绍了如何利用阿里云的解决方案,快速构建企业专属的“第二大脑”,助力企业在竞争中占据优势。
|
1天前
|
人工智能 自然语言处理 安全
创新不设限,灵码赋新能:通义灵码新功能深度评测
自从2023年通义灵码发布以来,这款基于阿里云通义大模型的AI编码助手迅速成为开发者心中的“明星产品”。它不仅为个人开发者提供强大支持,还帮助企业团队提升研发效率,推动软件开发行业的创新发展。本文将深入探讨通义灵码最新版本的三大新功能:@workspace、@terminal 和 #team docs,分享这些功能如何在实际工作中提高效率的具体案例。
|
8天前
|
负载均衡 算法 网络安全
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
阿里云平台WoSign品牌SSL证书是由阿里云合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品,用户在阿里云平台https://www.aliyun.com/product/cas 可直接下单购买WoSign SSL证书,快捷部署到阿里云产品中。
1850 6
阿里云WoSign SSL证书申请指南_沃通SSL技术文档
|
11天前
|
Web App开发 算法 安全
什么是阿里云WoSign SSL证书?_沃通SSL技术文档
WoSign品牌SSL证书由阿里云平台SSL证书合作伙伴沃通CA提供,上线阿里云平台以来,成为阿里云平台热销的国产品牌证书产品。
1789 2