题目描述
给你两个整数n和m,请你计算有多少个整数对(a,b)满足以下条件:
当0<a<b<n时,(a2+b2+m)/(ab)是一个整数。
输入
输入包含多组测试数据。每组输入为两个整数n和m(0<n<=100),当n=m=0时,输入结束。
输出
对于每组输入,输出样例标号和满足要求的整数对的个数。
样例输入 Copy
10 1
20 3
30 4
0 0
样例输出 Copy
Case 1: 2
Case 2: 4
Case 3: 5
代码
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n,m;
int num=0;
while(cin>>n>>m)
{
int t=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)
t++;
}
printf("Case %d: %d\n",++num,t);
}
return 0;
}
#include<stdio.h>
int main()
{
int n,m,a,b,c=1;
while(scanf("%d %d",&n,&m)!=EOF&&(n||m))
{
double num;
int sum=0;
for(a=1;a<n;a++)
{
for(b=a+1;b<n;b++)
{
num=(a*a+b*b+m)%(a*b);
if(num==0)
sum++;
}
}
printf("Case %d: %d\n",c,sum);
c++;
}
return 0;
}