PersonalCorpus 版 (精华区)
153699 07:56:10 4 Mar 2002
Bozhang,HIT,P.R.China 1024 Pascal Accepted 0.02 sec 49K
var
a:array[1..1000] of word;
res,i,j,k,l,n:integer;
function gcd(a,b:integer):integer;
begin
while a<>b do begin
if a mod b=0 then begin result:=b; exit end;
a:=a mod b;
if b mod a=0 then begin result:=a; exit end;
b:=b mod a;
end;
result:=a;
end;
begin
readln(n);
for i:=1 to n do read(a[i]);
res:=1; k:=1;
while k<>n+1 do begin
i:=1;j:=a[k]; a[k]:=0;
while j<>k do begin inc(i); l:=a[j]; a[j]:=0; j:=l end;
l:=gcd(res,i);
res:=res*(i div l);
for k:=1 to n do if a[k]<>0 then break;
end;
writeln(res);
end.
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.715毫秒