简单pascal程序找错,急啊~~。在线等

来源:百度知道 编辑:UC知道 时间:2024/06/25 20:55:50
题目:求两个自然数M和N的最小公倍数。(如果求三个或更多个数的最小公倍数呢?应如何解决)
参考程序:
progam ex316;
var a,m,m:real;
begin
write('m,n');
readln(m,n);
if m>n then a:m; else a:=n; (这里它提示 error in statement)
a:=a-1;
repeat
a:=a+1;
until (a mod m=0) and (a mod n=0); (这里提示operand types do not match operator)
writeln(a);
readln;
end.

************************************************
var m,n:longint;
function gcd(m,n:longint):longint;
var t,r,s:longint;
begin
s:=m*n;
if m<n then begin t:=m;m:=n;n:=t;end;
while m mod n<>0 do begin
t:=m mod n;m:=n;n:=t;end;
gcd:=s div n;
end;
begin
read(m,n);
writeln(gcd(m,n));
end.
************************************************
这是我自己编的,如果你要三个的,如下:
************************************************
var m,n:longint;
function gcd(m,n:longint):longint;
var t,r,s:longint;
begin
s:=m*n;
if m<n then begin t:=m;m:=n;n:=t;end;
while m mod n<>0 do begin
t:=m mod n;m:=n;n:=t;end;
gcd:=s div n;
end;
begin
read(m,n,x);
writeln(gcd(gcd(m,n),x));
end.
************************************************
依次类推,如果不会,可以来找我。
有问题找我。

else之前不应该有分号
a,m,n为实数类型,是不可以mod运算的,取余数只是针对integer、longint等整数类型

progam ex3