1 #include <iostream> 2 #include <sstream> 3 #include <string> 4 #include <algorithm> 5 #include <vector> 6 #include <cmath> 7 using namespace std; 8 9 #define GI ({int _t; scanf("%d", &_t); _t;}) 10 #define FOR(i, a, b) for (int i=a; i<b; i++) 11 #define REP(i, a) FOR(i, 0, a) 12 template<class T> string toString(T n){ostringstream ost;ost<<n;ost.flush();return ost.str();} 13 int toInt(string s){int r=0;istringstream sin(s);sin>>r;return r;} 14 #define DBG(x) cout << #x << "::" << x << endl; 15 #define DBGV(_v) { REP(_i, _v.size()) { cout << _v[_i] << "\t";} cout << endl;} 16 17 int gcd(long long int a, long long int b) { 18 while (b>0) { 19 a = a%b; 20 a ^= b; 21 b ^= a; 22 a ^= b; 23 } 24 return a; 25 } 26 27 28 int main() { 29 int num; 30 while (scanf("%d", &num) != -1 && num != 0) { 31 vector <int> v; 32 REP(i, num) { 33 v.push_back(GI); 34 } 35 double total = (num*(num-1))/2; 36 double cnt = 0; 37 REP(i, num) { 38 FOR(j, i+1, num) { 39 if (gcd(v[i], v[j]) == 1) { 40 //cout << v[i] << "\t" << v[j] << endl; 41 cnt++; 42 } 43 } 44 } 45 if (cnt == 0) { 46 printf("No estimate for this data set.\n"); 47 } 48 else { 49 //DBG(cnt);DBG(total); 50 printf("%0.6lf\n", sqrt(total*6/cnt)); 51 } 52 } 53 return 0; 54 }