// /148K 0MS C++
#include <cstdio>
#include <cmath>
#include <cstring>
int val[55];
int valNum;
int gcd(int p, int q) {
int r = p%q;
if (r == 0) {
return q;
} else {
return gcd(q, r);
}
}
int MAX(int A, int B) {
return A > B ? A: B;
}
int MIN(int A, int B) {
return A < B ? A: B;
}
void solve(int valNum) {
int pairNum = 0;
int NOpairNum = 0;
for (int i = 0; i < valNum - 1; i++) {
for (int j = i + 1; j < valNum; j++) {
int factor = gcd(MAX(val[i], val[j]), MIN(val[i], val[j]));
pairNum++;
if (factor <= 1) {
NOpairNum++;
}
}
}
if (NOpairNum == 0) {
printf("No estimate for this data set.\n");
} else {
printf("%.6lf\n", sqrt(6*pairNum/(double)NOpairNum));
}
}
int main() {
while(scanf("%d", &valNum) != EOF) {
if (valNum == 0) {
return 0;
}
for (int i = 0; i < valNum; i++) {
scanf("%d", &val[i]);
}
solve(valNum);
}
}
水题,纯粹练一下辗转相除