C++ 代码
#include <iostream>
using namespace std;
int main()
{
string s;
while(cin>>s,s!= ".")
{
for(int i=1;i<=s.size();i++) //枚举子串a的长度i
{
if(s.size()%i==0) //只需枚举字符串s长度的约数
{
int n;
for(n=1;n*i<=s.size();n++) //n记录字符串s中有多少连续的子串a
if(s.substr(0,i)!=s.substr(n*i,i)) break; //一旦不是连续重复就终止循环
if(n*i==s.size()) //判断得到的n是否满足乘方定义,若是则输出n,终止枚举i
{
cout << n << endl;
break;
}
}
}
}
return 0;
}