最大公约数和最小公倍数问题pascal最优题目的编号为1012,可以找得到.不过好像要先注册.Description输入二个正整数x0,y0(2

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/14 22:15:13

最大公约数和最小公倍数问题pascal最优题目的编号为1012,可以找得到.不过好像要先注册.Description输入二个正整数x0,y0(2
最大公约数和最小公倍数问题pascal最优
题目的编号为1012,可以找得到.不过好像要先注册.
Description
输入二个正整数x0,y0(2

最大公约数和最小公倍数问题pascal最优题目的编号为1012,可以找得到.不过好像要先注册.Description输入二个正整数x0,y0(2
这回没问题了(只是在read(x0,y0)后加了一个if语句)



var x0,y0,n,divs:longint;
begin
    read(x0,y0);
    if (y0 mod x0<>0) then begin
       writeln(0); exit;
    end;
    x0:=y0 div x0;
    if (x0=1) then begin
       writeln(1);
       exit;
    end;
    divs:=2; n:=0;
    if (x0>1) then begin
       if (x0 mod divs=0) then begin
          n:=n+1;
          while (x0 mod divs=0) do
                x0:=x0 div divs;
       end;
    end;
    divs:=3;
    while (x0>1) do begin
       if (x0 mod divs=0) then begin
          n:=n+1;
          while (x0 mod divs=0) do
                x0:=x0 div divs;
       end;
       divs:=divs+2;
    end;
    x0:=1 shl n;
    writeln(x0);
end.
这回经测试100分(原因是测试数据没有保证y0是x0的倍数,此时不可能与解,也就是说答案是0)