zoukankan      html  css  js  c++  java
  • 扩展欧几里得模板

     

    题目描述

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

    输入

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

    输出

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

    样例输入

    3 10

    样例输出

    7

     

    【数据范围】

    对于 40%的数据,2 ≤b≤ 1,000;

    对于 60%的数据,2 ≤b≤ 50,000,000;

    对于 100%的数据,2 ≤a, b≤ 2,000,000,000。
     1 var a,b,x,y,ans:longint;
     2  
     3 function euclid(a,b:longint;var x,y:longint):longint;
     4 var t:longint;
     5 begin
     6  if b=0 then
     7  begin
     8   euclid:=a; x:=1; y:=0;
     9  end
    10  else
    11  begin
    12   euclid:=euclid(b,a mod b,x,y);
    13   t:=x; x:=y; y:=t-(a div b)*y;
    14  end;
    15 end;
    16  
    17 begin
    18  readln(a,b);
    19  ans:=euclid(a,b,x,y);
    20  x:=x mod b;
    21  while x<0 do x:=x+b;
    22  writeln(x);
    23 end.
  • 相关阅读:
    sed
    UCOSIII(二)
    UCOSIII(一)
    IIC
    SPI
    vii
    find
    grep
    Scrum项目4.0
    Scrum项目3.0
  • 原文地址:https://www.cnblogs.com/myx12345/p/6061558.html
Copyright © 2011-2022 走看看