首页 > 代码库 > (HDU)1017 --A Mathematical Curiosity(数学好奇心)

(HDU)1017 --A Mathematical Curiosity(数学好奇心)

技术分享
描述
给定两个整数n和m,计数整数对(a,b)的数目,使得0 <a <b <n,并且(a ^ 2 + b ^ 2 + m)/(ab)是一个整数。

这个问题包含多个测试用例!

输入的第一行是整数N,然后是空白行,后跟N个输入块。 每个输入块采用问题说明中指示的格式。 输入块之间有空行。

输出格式由N个输出块组成。 输出块之间有一个空行。


输入
您将在输入中获得多个样例。 每个情况由包含整数n和m的行指定。 输入结束由n = m = 0的情况表示。您可以假设0 <n <= 100。


输出
对于每种情况,输出样例编号以及满足给定属性的对数(a,b)。 在一行上输出每种情况的答案,格式如下所示。


样品输入
1

10 1
20 3
30 4
0 0


示例输出

Case 1: 2
Case 2: 4
Case 3: 5
题目

找出满足要求的数对,这题容易WA和PE,都是格式的原因。

这题其实特别水,n的范围很小,忽略输入的空行也可以AC...

 

技术分享
 1 #include <iostream>
 2 #include <cstdio>
 3 
 4 using namespace std;
 5 
 6 int main()
 7 {
 8 
 9     int N;
10     int n,m;
11     scanf("%d",&N);
12     while(N--)
13     {
14         int num=1;
15         while(~scanf("%d%d",&n,&m) &&(n||m) )
16         {
17             int sum=0;
18             int i,j;
19             for(i=1;i<n;i++)
20             {
21                 for(j=i+1;j<n;j++)
22                 {
23                     if((i*i+j*j+m)%(i*j) == 0)
24                         sum++;
25                 }
26             }
27             printf("Case %d: %d\n",num++,sum);
28         }
29         if(N)
30             printf("\n");
31     }
32     return 0;
33 }
代码

(HDU)1017 --A Mathematical Curiosity(数学好奇心)