求一个一个串的所有前缀prefix(i)中(前缀长度为1的除外),哪些前缀可以由一个子串复制平铺K次后得到(k>1)
kmp,当求得next数组后, 另 pi = i - next[i], pi表示这个前缀prefix(i)可由长度为pi的子串平铺而成,这样,k就可由i/pi得出
}
int main () {
int ca = 0;
while(scanf("%d", &n), n) {
scanf("%s", &str);
getNext();
printf("Test case #%d/n", ++ca);
for(int i = 2; i <= n; ++i) {
if(i-next[i] != 0 && i%(i - next[i])==0 && i/(i - next[i]) > 1)
printf("%d %d/n", i, i/(i-next[i]) );
}
printf("/n");
}
return 0;
}