Cho 2 dãy số A và B. Hãy tìm GCD lớn nhất giữa 2 số trong A và B.
VD: A = {2; 3; 4; 5}; B = {19; 20; 21; 22; 23; 24}
Kết quả là 5.
Giải thích: GCD(2;19)=1; GCD(2;20)=2; GCD(2;21)=1;....
GCD(3;19)=1; ....
GCD(5; 20)=5 - lớn nhất.
Input:
Dòng đầu: n
N dòng tiếp theo ghi A[i]
Dòng tiếp theo: m
M dòng tiếp theo ghi B[i]
Ràng buộc:
- \(n,m\le10^9\)
Output: Kết quả bài toán
Lời giải :
program hotrotinhoc;
const fi='dlvr.inp';
fo='dlvr.out';
var a,b: array[1..1000] of longint;
m,n,i,j,max : integer;
f: text;
function gcd(x,y: longint): integer;
var z: longint;
begin
while y<>0 do
begin
z:= x mod y;
x:=y;
y:=z;
end;
gcd:=x;
end;
procedure ip;
begin
assign(f,fi);
reset(f);
readln(f,n);
for i:=1 to n do
read(f,a[i]);
readln(f);
readln(f,m);
for j:=1 to m do
read(f,b[i]);
close(f);
end;
procedure out;
begin
assign(f,fo);
rewrite(f);
for i:=1 to n do
for j:=1 to m do
if gcd(a[i],b[j])>max then max:=gcd(a[i],b[j]);
write(f,max);
close(f);
end;
begin
ip;
out;
end.