题目大意:
现有多个测例(测例数题中给出),每个测例中给出若干行,每行中给出两个int型整数n和m,其中1 ≤ n ≤ 100,要求计算整数对(a, b)的个数,该整数对满足0 < a < b < n并且ab能整除(a^2 + b^2 + m),即(a^2 + b^2 + m) mod ab = 0,输出时测例之间有空行,最后一个测例后没有空行,每个测例中每一行的输出用Case %d统计。
注释代码:
/*
* Problem ID : ZOJ 1152 A Mathematical Curiosity
* Author : Lirx.t.Una
* Language : C
* Run Time : 30 ms
* Run Memory : 168 KB
*/
#include <stdio.h>
int
main() {
int nscn, iscn;
int n, m;
int a, b;
int cnt;
scanf("%d", &nscn);
while ( nscn-- ) {
iscn = 0;//枚举
while ( scanf("%d%d", &n, &m), n ) {
cnt = 0;
for ( a = 1; a < n; a++ )
for ( b = a + 1; b < n; b++ )
if ( !( ( a * a + b * b + m ) % ( a * b ) ) )
cnt++;
printf("Case %d: %d\n", ++iscn, cnt);
}
if (nscn) putchar('\n');
}
return 0;
}
无注释代码:
#include <stdio.h>
int
main() {
int nscn, iscn;
int n, m;
int a, b;
int cnt;
scanf("%d", &nscn);
while ( nscn-- ) {
iscn = 0;
while ( scanf("%d%d", &n, &m), n ) {
cnt = 0;
for ( a = 1; a < n; a++ )
for ( b = a + 1; b < n; b++ )
if ( !( ( a * a + b * b + m ) % ( a * b ) ) )
cnt++;
printf("Case %d: %d\n", ++iscn, cnt);
}
if (nscn) putchar('\n');
}
return 0;
}
单词解释:
mathematical:adj, 数学的
curiosity:n, 好奇心