1055 - 一个数学问题

给你两个整数n和m,请你计算有多少个整数对(a,b)满足以下条件:
当0<a<b<n时,(a^2+b^2+m)/(ab)是一个整数。

题目输入

输入包含多组测试数据。每组输入为两个整数n和m(0<n<=100),当n=m=0时,输入结束。

题目输出

对于每组输入,输出样例标号和满足要求的整数对的个数。

输入/输出样例

题目输入

10 1
20 3
30 4
0 0

题目输出

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

C语言解答

#include<stdio.h>

int main()
{
	int n,m,c=0,i,j,s;
	while(scanf("%d%d",&n,&m),n||m)
	{
		for(s=0,i=1;i<n;i++)
			for(j=i+1;j<n;j++)
				if((i*i+j*j+m)%(i*j)==0)
					s++;
		printf("Case %d: %d\n",++c,s);
	}
	return 0;
}

C++解答

#include<stdio.h>

int main()
{
	int n,m,c=0,i,j,s;
	while(scanf("%d%d",&n,&m),n||m)
	{
		for(s=0,i=1;i<n;i++)
			for(j=i+1;j<n;j++)
				if((i*i+j*j+m)%(i*j)==0)
					s++;
		printf("Case %d: %d\n",++c,s);
	}
	return 0;
}
时间限制 1 秒
内存限制 32 MB
讨论 统计
上一题 下一题