HDOJ 1017 A Mathematical Curiosity

简介: HDOJ 1017 A Mathematical Curiosity

Problem Description

Given two integers n and m, count the number of pairs of integers (a,b) such that 0 < a < b < n and (a^2+b^2 +m)/(ab) is an integer.


This problem contains multiple test cases!


The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.


The output format consists of N output blocks. There is a blank line between output blocks.


Input

You will be given a number of cases in the input. Each case is specified by a line containing the integers n and m. The end of input is indicated by a case in which n = m = 0. You may assume that 0 < n <= 100.


Output

For each case, print the case number as well as the number of pairs (a,b) satisfying the given property. Print the output for each case on one line in the format as shown below.


Sample Input

1


10 1

20 3

30 4

0 0


Sample Output

Case 1: 2

Case 2: 4

Case 3: 5

/*对于英语如我这样的人来说,,,,题目是天书啊。看了别人的翻译才知道什么意思的。。。
大概意思是:(0 < a < b < n ) (a^2+b^2 +m)/(ab) 的结果是一个整数,
所以满足需要(a^2+b^2 +m)%(ab)等于0。
输出:求这样的(a,b)有多少对。
懂了意思就是个水题。
还有注意输出格式:
第一个输入t为有t组数据。
每组数据有n,m2个数。
当n==0&&m==0时,这一组的输入结束,进行下一组。
每2组之间的输出有一个空行。
*/
import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        while(t-->0){
            int p = 0;
            while(sc.hasNext()){
                int n = sc.nextInt();
                int m = sc.nextInt();
                int num=0;
                if(n==0&&m==0){
                    break;
                }
                for(int a=1;a<n-1;a++){
                    for(int b=a+1;b<n;b++){
                        if((a*a+b*b+m)%(a*b)==0){
                            num++;
                        }
                    }
                }
                System.out.println("Case "+(++p)+": "+num);
            }
            if(t!=0)
                System.out.println();
        }
    }
}
目录
相关文章
HDOJ 1303 Doubles(简单题)
HDOJ 1303 Doubles(简单题)
105 0
HDOJ 1412 {A} + {B}
HDOJ 1412 {A} + {B}
122 0
|
Java
HDOJ 1715 大菲波数
HDOJ 1715 大菲波数
110 0
HDOJ 1323 Perfection(简单题)
HDOJ 1323 Perfection(简单题)
127 0
HDOJ的题目分类
模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 ...
1833 0
HDOJ 1214 圆桌会议
Problem Description HDU ACM集训队的队员在暑假集训时经常要讨论自己在做题中遇到的问题.每当面临自己解决不了的问题时,他们就会围坐在一张圆形的桌子旁进行交流,经过大家的讨论后一般没有解决不了的问题,这也只有HDU ACM集训队特有的圆桌会议,有一天你也...
856 0
|
机器学习/深度学习
HDOJ 2074 叠筐
Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。 Input 输入是一个个的三元组,分别是,外筐尺寸n(n为满足0< n< 80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符; Output 输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。
852 0
HDOJ 2056 Rectangles
Problem Description Given two rectangles and the coordinates of two points on the diagonals of each rectangle,you have to calculate the area of the intersected part of two rectangles.
1013 0
HDOJ 2050 折线分割平面
Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。
997 0