题目意思描述不清。。。
1)第一个数字是blocks的个数,但注意后面不用输出换行符(输入样例是有个空白行的,莫名其妙)。
2)每个block都以0 0结束,然后重新从Case 1开始输出。
3)两个相邻的block之间输出空行,最后一块后面不用
#include "stdio.h" #include "string.h" int main() { int N; while(scanf("%d",&N)!=EOF) { int y; for(y=0;y<N;y++) { int n,m,x=1; while(scanf("%d %d",&n,&m),m>0,n>0) { int i,j,count=0; for(i=1;i<n-1;i++) for(j=i+1;j<n;j++) if((i*i+j*j+m)%(i*j)==0) count++; printf("Case %d: %d\n",x++,count); } if(y!=N-1) printf("\n"); } } return 0; }