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; }