Loj上能过 但是在lg上就WA了
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <iostream>
#define N 1000005
using namespace std;
char s1[N],s2[N];
int len1,len2,j,ans;
int nxt[N];
int main(){
while(scanf(" %s",s1+1)!=EOF){
if(s1[1]=='.') break;
memset(nxt,0,sizeof(nxt));
len1=strlen(s1+1);
j=0;
for(int i=2;i<=len1;i++){
while(j && s1[i]!=s1[j+1]) j=nxt[i];
if(s1[i]==s1[j+1]) j++;
nxt[i]=j;
}
len2=len1-nxt[len1];
if(len1%len2) printf("1\n");
else printf("%d\n",len1/len2);
}
return 0;
}