简单题,不知道为什么开始 WA 了一下。
题目大意是给定一组 \(n\) 个数,那么共有 \(n(n-1)/2\) 个数对,求出所有的互质数对,就是这样。 gcd
的写法还是值得背下来的。
代码:
#include <stdio.h>
#include <math.h>
int gcd(int a, int b) {
return b ? gcd(b, a % b) : a;
}
int main(int argc, char *argv[]) {
int num;
int inta[60];
int i, j;
int result;
while (scanf("%d", &num)) {
if (num == 0) {
break;
}
for (i = 0; i < num; ++i) {
scanf("%d", &inta[i]);
}
result = 0;
for (i = 0; i < num; ++i) {
for (j = i + 1; j < num; ++j) {
if (gcd(inta[i], inta[j]) == 1) {
result++;
}
}
}
if (result == 0) {
printf ("No estimate for this data set.\n");
}
else {
printf ("%.6lf\n", sqrt(3.0*num*(num-1)/result));
}
}
return 0;
}
时间紧迫,继续水题……太不道德了……