Pagini recente » Cod sursa (job #1116259) | Cod sursa (job #393111) | Cod sursa (job #2734900) | Cod sursa (job #847356) | Cod sursa (job #166781)
Cod sursa(job #166781)
#include<stdio.h>
int v[100000],p;
int ciclu(int x,int c){
++p;
if(x==c)
return p;
return ciclu(v[x],c);
}
int cmmdc(int a,int b){
if(!b)
return a;
return cmmdc(b,a%b);
}
int cmmmc(int a,int b){
return (a*b)/cmmdc(a,b);
}
int main () {
freopen("perm2.in","r",stdin);
freopen("perm2.out","w",stdout);
int n,i,x,pr=1;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&v[i]);
for(i=1;i<=n;++i){
p=0;
x=ciclu(v[i],i);
if(i>=2)
pr=cmmmc(pr,x);
}
printf("%d\n",pr);
return 0;
}