[ 提交][ 状态][ 讨论版]
题目描述
给你一个字符串,请你判断将此字符串转化成a^n形式的最大的n是多少。
例如:abcd=(abcd)^1,则n=1;
aaaa=a^4,则n=4;
ababab=(ab)^3,则n=3。
例如:abcd=(abcd)^1,则n=1;
aaaa=a^4,则n=4;
ababab=(ab)^3,则n=3。
输入
输入包含多组测试数据。每组输入为一个字符串,长度不超过100,其中不包含空格等空白符。当输入为一个“.”时,输入结束。
输出
对于每组输入,输出将此字符串转化成a^n形式的最大的n。
样例输入
abcd
aaaa
ababab
.
样例输出
1
4
3
# include<stdio.h> # include<string> # include<iostream> using namespace std; int main(){ string a; string b; b+='.'; while(cin>>a&&a!=b)//注意,不能写a[0]='.',否则a=“........”不能得出结论 { int n=a.length(); int i=0,j; string b; while(i<n) { b=a.substr(0,i+1); if(n%(i+1)==0) { int t=i+1,k=1; j=t; for(j;j<n;j+=t) { string c=a.substr(j,t); if(b==c) k++; else break; } if(j==n) { printf("%d\n",k); break; } } i++; } } return 0; }