求两个自然数,其和是667,最小公倍数与最大公约数之比是120:1(pascal)program d313;vara,b,g,l:integer;f:text;function gcd(m,n:integer):integer;var r:integer;beginwhile r0 dobeginr:=a mod b;if r=0 thenbegingcd:=b;break;end;a:=b;b:=r;e

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 22:42:47
求两个自然数,其和是667,最小公倍数与最大公约数之比是120:1(pascal)programd313;vara,b,g,l:integer;f:text;functiongcd(m,n:integ

求两个自然数,其和是667,最小公倍数与最大公约数之比是120:1(pascal)program d313;vara,b,g,l:integer;f:text;function gcd(m,n:integer):integer;var r:integer;beginwhile r0 dobeginr:=a mod b;if r=0 thenbegingcd:=b;break;end;a:=b;b:=r;e
求两个自然数,其和是667,最小公倍数与最大公约数之比是120:1(pascal)
program d313;
var
a,b,g,l:integer;f:text;
function gcd(m,n:integer):integer;
var r:integer;
begin
while r0 do
begin
r:=a mod b;
if r=0 then
begin
gcd:=b;
break;
end;
a:=b;
b:=r;
end;
end;
function lcm(m,n:integer):integer;
var g,a,b:integer;
begin
a:=m;
b:=n;
g:=gcd(a,a);
lcm:=(m*n)div g;
end;
procedure assignfile;
begin
assign(f,'d313.out');
rewrite(f);
end;
begin
assignfile;
for a:=1 to 666 do
begin
b:=667-a;
g:=gcd(a,b);
l:=lcm(a,b);
if l div g=120 then
writeln(f,a,',',b);
end;
close(f);
end.
为什么会不出结果?
.

求两个自然数,其和是667,最小公倍数与最大公约数之比是120:1(pascal)program d313;vara,b,g,l:integer;f:text;function gcd(m,n:integer):integer;var r:integer;beginwhile r0 dobeginr:=a mod b;if r=0 thenbegingcd:=b;break;end;a:=b;b:=r;e
让我来点出你是个初学者的明显的特征:
第一,你的程序的GCD还有LCM重新定义了A和B以及G,这样主过程里面的变量值是多少?函数里面变量值是多少?变量重名会造成很严重的后果
第二,你的程序真长,看得我头疼
算了.你的程序我改完以后可以运行了.我没有输出重复的
var a,b:integer;
function gcd(m,n:integer):longint; //m>=n
begin
if n=0 then exit(m) else exit(gcd(n,m mod n));
end;
function lcm(m,n:integer):longint;
begin
exit((m*n) div gcd(m,n));
end;
procedure assignfile;
begin
assign(output,'d313.out');
rewrite(output);
end;
begin
assignfile;
for a:=1 to 333 do
begin
b:=667-a;
if lcm(b,a) div gcd(b,a)=120 then writeln(a,' ',b);
end;
close(output);
end.
顺便说下...你们老师难道没有教育你们PASCAL的过程要尽量不新开变量么...

两个自然数的最大约数是7,最小公倍数是84,两个自然数的和是49,求这两个自然数? 两个自然数的最大约数是7,最小公倍数是84,两个自然数的和是49,求这两个自然数? 已知两个自然数的和是60,它们的最大公约数与最小公倍数的和是84,求这两个自然数各是多少? 已知两个自然数的和是36,它们的最大公约数与最小公倍数的和是108,求这两个自然数各是多少? 已知两个自然数的差是2,他们的最大公约数与最小公倍数之和为42,求这两个自然数?要算式和解释,要简便 已知两个自然数的平方和是900,它们的最大公约数与最小公倍数的乘积是432,求这两个自然数. 两个自然数差是2,它们的最小公倍数与最大公因数的差是142,求这两个自然数? 已知两个自然数的和为54,它们的最小公倍数与最大公约数的差为114,求这两个自然数 两个自然数的和是108,它们的最大公约数是9,最小公倍数是315,求这两个自然数? 两个自然数的和是108,它们的最大公约数是9,最小公倍数是315,求这两个自然数? 关于最小公倍数和最大公约数.已知两个自然数的和为54,它们的最小公倍数与最大公约数的差为114,求这两个自然数.不要方程! 两个自然数,它们的最大公因数与最小公倍数的和是49,最小公倍数是最大公因数的6倍, 两个自然数的和是60,它们最大公约数与最小公倍数之和是84,求这两个数 最大公约数与最小公倍数的联系两个自然数的和是50,最大公约数是5,求这两个数. 两个自然数差是2,他们的最大公因数与最小公倍数和是86,求两数 两个自然数差是2,最小公倍数与最大公因数的和是26,求这两个数? 两自然数之和是72,它们的最大公因数与最小公倍数的和是216,这两个自然数分别是多少? a和b是两个相邻的自然数,最小公倍数是(