题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1017


这个题目其实挺坑的。


首先是N,应该挺多人纠结过这个N,N其实是blocks(块),一块有未知个cases。


一个块的结束标志是0,0。


然后是PE的问题,空格、空行

,我也是被坑的好惨。

这里应该是每个块之间有一个空行!也就是说,最后一个块是不在换行的。case与case之间没空行。


至于整数的判断,使用%来处理。


下面AC代码:


import java.util.Scanner;

public class Main{
	private static Scanner scanner;

	public static void main(String[] args) {
		scanner = new Scanner(System.in);
		int cases = scanner.nextInt();
		for (int i = 0; i < cases; i++) {
			int caseNum = 1;
			while (scanner.hasNext()) {
				int n = scanner.nextInt();// 0<a<b<n
				int m = scanner.nextInt();
				if (n == 0 && m == 0) {
					break;
				}
				int count = 0;// 整数个数
				for (int a = 1; a < n; a++) {// a
					for (int b = a+1; b < n; b++) {//b
						//判断公式计算结果是整数
						if((a*a+b*b+m)%(a*b)==0){
							count++;
						}
					}
				}
				System.out.println("Case "+caseNum+": "+count);
				caseNum++;
			}
			if(i<cases-1){
				System.out.println();
			}
		}
	}
}