noip 同余方程

Posted 1 2 f s_____

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了noip 同余方程相关的知识,希望对你有一定的参考价值。

描述

求关于x的同余方程ax ≡ 1 (mod b)的最小正整数解。

格式

输入格式

输入只有一行,包含两个正整数a, b,用一个空格隔开。

输出格式

输出只有一行,包含一个正整数x0,即最小正整数解。输入数据保证一定有解。

样例1

样例输入1

3 10

样例输出1

7

限制

每个测试点1s

提示

对于40%的数据,2 ≤b≤ 1,000; 
对于60%的数据,2 ≤b≤ 50,000,000; 
对于100%的数据,2 ≤a, b≤ 2,000,000,000。

来源

Noip2012提高组复赛Day2T1

技术分享
#include<cstdio>
#include<cstring>
long long aa[200010];
int phi;
long long int mod;
long long int poww(long long int a)
{
//    printf("%lld ",mod);
    int b=phi-1;
    long long ans=1;
    while(b) 
    {
        if(b&1) ans=ans*a%mod;
        b=b>>1;
        a=a*a%mod;
    }
    return ans;
}
int getphi(int x)
{
    int sum=x;
    for(int i=2;i*i<=x;i++)
    {
        if(x%i==0)
        {
            sum=sum/i*(i-1);
            while(x%i==0) x/=i;
        }
    }
    if(x>1) sum=sum/x*(x-1);
    return sum;
}
int main()
{
    long long int a;
    scanf("%lld %lld",&a,&mod);   
    phi=getphi(mod);
  //  printf("%d ",phi);
  //  printf("%lld ",mod);
//  printf("%d",ans);
    long long  ans=poww(a);
    printf("%lld",ans);
    return 0;
}
View Code

不会用拓欧求逆元;

只会用费马小定理求逆元;

(我好菜!!!)



以上是关于noip 同余方程的主要内容,如果未能解决你的问题,请参考以下文章

noip 同余方程

[NOIp 2012]同余方程

NOIP2012 同余方程 题解

同余方程(NOIP2012)

codevs1200 NOIP2012—同余方程

同余方程 2012年NOIP全国联赛提高组