/*   @JUDGE_ID:   1705PZ   412   C */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int gcd(int x,int y)
{
	while(x != y)
	{
		if(x > y)
			x -= y;
		else
			y -= x;
	}
	return x;
}

void main()
{
	int i,j,count,count1,n;
	int *table;
	float ans;
	while(1)
	{
		count = 0;
		count1 = 0;
		scanf("%d",&n);
		if(n == 0)
			break;
		table = (int *)malloc(sizeof(int) * n);
		for(i = 0;i < n;i++)
			scanf("%d",table + i);
		for(i = 0;i < n - 1;i++)
		{
			for(j = i + 1;j < n;j++)
			{
				if(gcd(*(table + i),*(table + j)) == 1)
					count++;
				count1++;
			}
		}

		if(count != 0)
		{
			ans = count1 * 6;
			ans /= count;
			ans = pow(ans,0.5);
			printf("%f\n",ans);
		}
		else
		{
			printf("No estimate for this data set.\n");
		}
	}
}
@END_OF_SOURCE_CODE
