之後可求pi值。
/* ACM 412 Pi
* mythnc
* 2011/11/24 10:50:36
* run time: 0.124
*/
#include <stdio.h>
#include <math.h>
#define MAXN 49
void input(int *, int);
int comfactor(int *, int);
int gcd(int, int);
int main(void)
{
int n, pair;
int list[MAXN];
while (scanf("%d", &n) == 1 && n != 0) {
input(list, n);
pair = comfactor(list, n);
if (pair == 0) {
printf("No estimate for this data set.\n");
continue;
}
printf("%.6f\n", sqrt(3.0 / pair * n * (n - 1)));
}
return 0;
}
/* input: receive input data */
void input(int *list, int n)
{
int i;
for (i = 0; i < n; i++)
scanf("%d", list + i);
}
/* comfactor: return no common factors pair numbers */
int comfactor(int *list, int n)
{
int i, j, count;
for (count = i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
if (gcd(list[i], list[j]) == 1)
count++;
return count;
}
/* gcd: calculate gcd of a and b */
int gcd(int a, int b)
{
while ((a %= b) && (b %= a))
;
return a + b;
}
沒有留言:
張貼留言