Pagini recente » Cod sursa (job #2097509) | Cod sursa (job #1373547) | Cod sursa (job #2950817) | Cod sursa (job #304280) | Cod sursa (job #1004682)
#include<cstdio>
#include<cstring>
using namespace std;
int i,T,n,k,phi[1000009];
char a[1000009];
int main()
{
freopen("prefix.in","r",stdin);
freopen("prefix.out","w",stdout);
scanf("%d\n",&T);
while(T)
{
T--;
gets(a+1);
n=strlen(a+1);
phi[1]=k=0;
for(i=2;i<=n;i++)
{
while(k&&a[k+1]!=a[i]) k=phi[k];
if(a[k+1]==a[i]) k++;
phi[i]=k;
}
for(i=n;i>=1;i--)
if(phi[i]&&i%(i-phi[i])==0)
{
printf("%d\n",i);
break;
}
if(i==0) printf("0\n");
}
return 0;
}