zoukankan      html  css  js  c++  java
  • 【模板】扩展欧几里得算法(洛谷P1082)

    Description

      求关于(x)的同余方程 (ax equiv 1 pmod {b}) 的最小正整数解。

    Input

      一行,包含两个正整数 (a,b)用一个空格隔开。

    Output

      一个正整数 (x_0)即最小正整数解。输入数据保证一定有解。

    Solution

    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    long long a,b,x,y;
    void exgcd(long long a,long long b,long long &x,long long &y)
    {
    	if (b==0)
    	{
    		x=1;y=0;
    		return;
    	}
    	exgcd(b,a%b,x,y);
    	long long z=x;
    	x=y,y=z-(a/b)*y;
    }
    int main()
    {
    	scanf("%lld%lld",&a,&b);
    	exgcd(a,b,x,y);
    	printf("%lld
    ",(x%b+b)%b);
    	return 0;
    }
    
    
  • 相关阅读:
    php分页问题
    php中memcached的使用
    Linux安装Git
    day06
    day07
    day03
    day05
    day04
    列表的操作
    初识数据类型
  • 原文地址:https://www.cnblogs.com/Code-Geass/p/9929059.html
Copyright © 2011-2022 走看看