データが比較的小さいため、この問題は、それが直接的な暴力することが可能である
ことが成功した場合1-nからその長さを列挙し、それは、直接出て行くだろう
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
char s[100];
scanf("%s",s);
int m = strlen(s), j = 1;
while(j <= m)
{
if(!(m%j)) // 你要周期,至少得是它的倍数八
{
int ok = 1; // 标记是否可以
for (int i = 1; i < m/j;i++) // 次数
{
for (int k = 0; k < j; k++) // 周期长度
{
if(s[k]!=s[i*j+k])
{
ok = 0;
break;
}
}
if(!ok) break;
}
if(ok)
{
printf("%d\n",j);
break;
}
}
j++;
}
if(n) printf("\n");
}
return 0;
}