#include<stdio.h> #define N 1000005 char s[N]; int next[N],n; void getnext() { int i,j; next[0]=0; for(i=1,j=0;i<n;i++) { while(j>0&&s[i]!=s[j]) j=next[j-1]; if(s[i]==s[j]) j++; next[i]=j; } } int main() { int i,Case; Case=0; while(scanf("%d",&n),n) { printf("Test case #%d\n",++Case); scanf("%s",s); getnext(); for(i=2;i<=n;i++) { if(i%(i-next[i-1])==0&&i/(i-next[i-1])>1) { printf("%d %d\n",i,i/(i-next[i-1])); } } printf("\n"); } return 0; }