Pagini recente » Cod sursa (job #615024) | Cod sursa (job #1146095) | preONI 2008 - Runda Finala | Cod sursa (job #175035) | Cod sursa (job #122938)
Cod sursa(job #122938)
program pairs;
type pnod=^nod;
nod = record
info : longint;
urm : pnod;
end;
var prim,urm,ultim,prim1,prim2 : pnod;
N,i,m,match : integer;
fin,fout : text;
function cmmdc(a,b:longint):integer;
var p1,u,ul,p2,p : pnod;
max : integer;
begin
max := 1;
new(p1);
p1^.info := 1;
p1^.urm := nil;
ul := p1;
for i := 2 to (a div 2 + 1) do
if a mod i = 0 then begin
new(u);
u^.info := i;
u^.urm := nil;
ul^.urm := u;
ul := u;
end;
new(p2);
p2^.info := 1;
p2^.urm := nil;
ul := p1;
for i := 2 to (a div 2 + 1) do
if a mod i = 0 then begin
new(u);
u^.info := i;
u^.urm := nil;
ul^.urm := u;
ul := u;
end;
max := 1;
while p1<>nil do begin
if (b mod p1^.info = 0) and (p1^.info <> 1) then max := max+1;
p1 := p1^.urm;
end;
cmmdc := max;
end;
begin
match := 0;
assign(fin,'pairs.in');
reset(fin);
readln(fin,N);
new(prim);
readln(fin,prim^.info);
prim^.urm := nil;
ultim := prim;
for i := 2 to N do begin
new(urm);
readln(fin,urm^.info);
urm^.urm := nil;
ultim^.urm := urm;
ultim := urm;
end;
prim2 := prim;
while prim<>nil do begin
prim1 := prim;
while prim1<>nil do begin
if (prim^.info mod prim1^.info<>0) then if cmmdc(prim1^.info,prim^.info)=1 then
begin
match := match+1;
end;
prim1 := prim1^.urm;
end;
prim := prim^.urm;
end;
assign(fout,'pairs.out');
rewrite(fout);
write(fout,match);
close(fout);
end.