码迷,mamicode.com
首页 > 其他好文 > 详细

noip 同余方程

时间:2017-09-23 13:32:10      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:while   nta   格式   同余   数据   ++   get   img   同余方程   

描述

求关于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 同余方程

标签:while   nta   格式   同余   数据   ++   get   img   同余方程   

原文地址:http://www.cnblogs.com/12fs/p/7580784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!