rt
为什么有些答案输出不了 只能输出部分答案??救救蒟蒻```cpp
#include<bits/stdc++.h>
#define re register
#define il inline
#define ull unsigned long long
const int num=31;
const int mod=1e8+7;
char s[2000010];
ull wdnmd[2000010],poww[2000010];
il int gethash(ull s[],int l,int r)
{
return wdnmd[r]-wdnmd[l-1]*poww[r-l+1];
}
int main()
{
poww[0]=1;
for(re ull i=1;i<=2000000;i++) poww[i]=poww[i-1]*num;
while(scanf("%s",s)==1)
{
if(s[0]=='.')return 0;
ull hash1=0;
ull len=strlen(s);
for(re int i=1;i<=len;i++) wdnmd[i]=wdnmd[i-1]num+s[i-1];
// for(re int i=1;i<=len;i++)
for(re int i=1;i<=len;i++)
{
hash1=hash1num+s[i-1];
if(len%i!=0) continue;
int flag=1;
for(re int j=1;j<=len&&flag;j+=i)
if(gethash(wdnmd,j,i+j-1)!=hash1) flag=0;
if(flag) {printf("%d\n",len/i);break;}
}
}
return 0;
}