ZJU 1152 解题报告

A Mathematical Curiosity

Time Limit: 1 Seconds Memory Limit: 32768 KB

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

Output for Sample Input

Case 1: 2
Case 2: 4
Case 3: 5

Source:East Central North America 1999, Practice

范围不大,直接暴力枚举就可以了!

CODE

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
 
int main()
{
  int n,m,i,j,k,N;
  while(scanf("%d",&N)!=EOF)
    {
      while(N--)
        {
          int idx=1;
          while(scanf("%d%d",&n,&m),!(m==0&&n==0))
            {
              int a,b,cnt=0;
              for(a=1;a<n;++a)
                for(b=a+1;b<n;++b)
                  if((a*a+b*b+m)%(a*b)==0) ++cnt;
              printf("Case %d: %d\n",idx++,cnt);
            }
          if(N) putchar('\n');
        }
    }
  return 0;
}
» 本博客采用署名 2.5 中国大陆许可协议进行许可,本文版权归作者所有,欢迎转载,但必须在明显位置给出原文连接。
anyShare分享到:

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>