void CalcNext(char *p,int *next)
{
next[0]=-1;
int nlen=strlen(p);
int k=-1;
int j=0;
while(j<nlen)
{
if(k==-1||p[j]==p[k])
{
++k;++j;
next[j]=k;
}
else
k=next[k];
}
}
bool repeatedSubstringPattern(char * s){
int length=strlen(s);
int *next=(int *)malloc(sizeof(int)*(length+1));
CalcNext(s,next);
int k=next[length];
int p=length-k;
if(length%p==0&&length!=p)
return true;
return false;
}