提交时间:2022-02-25 20:52:38
运行 ID: 45926
#include <bits/stdc++.h> using namespace std;int n,x[1000005];char s[1000005];int main(){while(scanf("%s",s)&&s[0]!='.'){n=strlen(s),x[1]=0;for(int i=2,j=0;i<=n;i++){while(j>0&&s[i]!=s[j+1])j=x[j];j+=(s[i]==s[j+1]),x[i]=j;}for(int i=n-1,f=1;i>=0&&f;i--)if(!x[i])cout<<(n==1?1:n/i)<<'\n',f=0;}}