游客 Signup | Login
中文 | En

1040 - 幂字符串

给你一个字符串,请你判断将此字符串转化成a^n形式的最大的n是多少。
例如:abcd=(abcd)^1,则n=1;
         aaaa=a^4,则n=4;
         ababab=(ab)^3,则n=3。

Input

输入包含多组测试数据。每组输入为一个字符串,长度不超过100,其中不包含空格等空白符。当输入为一个“.”时,输入结束。

Output

对于每组输入,输出将此字符串转化成a^n形式的最大的n。

Examples

Input

abcd
aaaa
ababab
.

Output

1
4
3

Solution C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char word[110];
    while(scanf("%s",word)==1)
    {

        int len=strlen(word);
        int i,j;
        if(word[0]=='.'&&len==1)
        break;
        for(i=1; i<=len; i++)
            if(len%i==0)
            {
                int ok=1;
                for(j=i; j<len; j++)
                    if(word[j]!=word[j%i])
                    {
                        ok=0;
                        break;
                    }
                if(ok)
                {
                    break;
                }
            }printf("%d\n",len/i);
    }

    return 0;
}

Solution C++

#include<cstdio>
#include<string>
using namespace std;

char s[101];

int main()
{
	string a,b,c;
	int i,t;
	while(scanf("%s",s)!=EOF)
	{
		a=s;
		if(a==".")
			break;
		b="";
		for(i=0;;i++)
		{
			b+=a[i];
			if(a.size()%b.size())
				continue;
			c="";
			t=0;
			while(c.size()<a.size())
			{
				c+=b;
				t++;
			}
			if(c==a)
			{
				printf("%d\n",t);
				break;
			}
		}
	}
	return 0;
}
Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题