ZOJ 1337 Pi

来源:互联网 发布:三级分销数据库设计 编辑:程序博客网 时间:2024/04/27 00:16

ZOJ  1337   Pi  {5039}

         题意:给出一组数字,找出这组数字中有公约数的数字的对数。根据这个对数和数字总量和题目所给公式求出一个值。

         思路+代码:

        

#include<stdio.h>#include<math.h>int main(){int i,n,j,k,f,sum,sum1,a[32770],b[32770],g;float pi;for(i = 1;;i++){scanf("%d",&n);if(n==0)break;sum = 0;for(j = 1;j<=n-1;j++){sum = sum+j;}sum1 = sum;for(j = 0;j<=n-1;j++){scanf("%d",&a[j]);}for(j = 0;j<=n-1;j++){f = 0;for(k = 2;k<=a[j];k++){if(a[j]%k==0){b[f] = k;f++;}}for(k = j+1;k<=n-1;k++){for(g = 0;g<=f-1;g++){if(a[k]%b[g]==0){sum1--;break;}}}}if(sum1==0)printf("No estimate for this data set.\n");else{pi = sqrt(6.0*sum/sum1);   //数字要精确!printf("%.6f\n",pi);}}return 0;}