Tin học Pascal-Tìm UCLN của n số

namnam06

Học sinh tiến bộ
Thành viên
12 Tháng chín 2018
1,147
894
151
Gia Lai
THCS Lê Quý Đôn
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

ai sửa giúp mình cái ctrình này để chạy trên FP đi
Program UCLN_cua_n_so;
Uses crt;
Var a,b : array [1..30000] of integer;
n,i,f : integer;
Begin
Write('Nhap so cac so can tim UCLN: '); Readln(n);
Write('Nhap cac so: ');
For i:=1 to n do readln(a);
For i:=1 to n do if a=1 then Writeln('UCLN cua cac so tren la 1.');
If (a[1] = a[2]) or (a[2] mod a[1] = 0) then b[1] := a[1] else
If a[1] mod a[2] = 0 then b[1] := a[2] else
For i:=1 to a[1] do
If (a[1] mod i = 0) and (a[2] mod i = 0) then b[1]:=i;
For f:=2 to n do
Begin
If b[f-1] mod a[f] = 0 then b[f] := a[f] else
If a[f] mod b[f-1] = 0 then b[f] := b[f-1] else
For i:=1 to b[f-1] do
If (b[f-1] mod i = 0) and (a[f] mod i = 0) then b[f-1]:=i;
End;
Writeln('UCLN cua cac so tren la ',b[n]);
Readln;
End.
 

Null_Character

Học sinh mới
Thành viên
2 Tháng sáu 2019
1
0
1
55
TP Hồ Chí Minh
Null_String
uses crt;
var
a: array [1..30000] of int64;
n, temp: integer;temp2, min: int64;
function UCLN(x, y: int64): int64;
begin
if x mod y = 0 then UCLN := y else UCLN := UCLN(y, x mod y);
end;
begin
Write('Nhap so cac so can tim UCLN: '); Readln(n);
Write('Nhap cac so: ');
repeat
inc(temp);
readln(a[temp])
until temp = n;
min := 2147483648 * 2147483648*2-1;
repeat
repeat
dec(temp);
temp2 := ucln(a[temp], a[n]);
if temp2 < min then min := temp2
until temp = 1;
dec(n);
temp := n
until n = 1;
Writeln('UCLN cua cac so tren la ', min);
Readln
end.
 

Deathheart

Cựu TMod Vật Lí
Thành viên
18 Tháng năm 2018
1,535
2,868
411
Quảng Trị
THPT Đông Hà
Mình thấy các bạn làm dài quá. Bài này hãy xây dựng một hàm nha
Function ucln(x,y:longint):Longint;
Var
Begin
While x<>y do
If x>y then y:=x-y
Else x:=y-x;
Ucln:=x;
End;
Xong rồi, trong ct chính mình gọi lại hàm này theo cách
For i:=1 to n do
Ucln(i, i+1);
P/s: truyền tham số ở hàm trên mình quên k bít có nên là (var x, y:longint) hay (x, y:longint) @@ để mình xem lại
 
Top Bottom