Sunday, February 27, 2011

412 - Pi


#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int GCD(int,int);
int main()
{
    int num[50],i,n,m,j,k;
    long double pi;
    //freopen("in.txt","r",stdin);
    while(scanf("%d",&n)&&n)
    {
        k=m=0;
        for(i=0;i<n;i++)
            scanf("%d",&num[i]);
        sort(num,num+n);
        for(i=0;i<n;i++)
            for(j=i+1;j<n;j++,m++)
                if(GCD(num[i],num[j])==1)
                    k++;
                if(!k)
        {
            printf("No estimate for this data set.\n");
            continue;
        }
        pi=sqrt((6.0*m)/k);
        printf("%0.6Lf\n",pi);
    }
    return 0;
}
int GCD(int a,int b)
{
    int c;
    while(a)
    {
        c=a;a=b%a;b=c;
    }
    return c;
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.