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.
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.
题意:就是数一下再给定范围0到n的数a和b,有多少个满足那个公式得出整数的。(a<b)看已给的样例不容易发现输出规律
看看这个大水坑,怎能不掉。注意输出每输入0 0跳出循环为一组,每组之间有一个空行,最后一组后面没有空行。
#include<cstdio>
using namespace std;
int main()
{
int E,e,s;
double i,j,m,n,sum;
scanf("%d",&e);
while(e--)
{
E=0;
while(~scanf("%lf%lf",&n,&m))
{
E++;
if(n==0&&m==0)
break;
s=0;
sum=0;
for(i=1; i<n; i++)
{
for(j=i+1; j<n; j++)
{
sum=(i*i+j*j+m)/(i*j);
if(sum==(int)sum)
s++;
}
}
printf("Case %d: %d\n",E,s);
}
if(e)
printf("\n");
}
return 0;
}