1491 Pi
自然数から無作為に2つを取り出した時、その2つが互いに素である確率は 6/π^2 となる。
円周率 - Wikipedia
これを実際に計算して調べてみましょうという問題。
各セットは最初に数列の長さN(最大で32768)。次のN個が数列の要素。この中から互いに素である組を数え挙げればよい。ただし互いに素である数がない場合には"No estimate for this data set."と出力しなければならない。
GCCで179byte。
a[50],g,n; f(a,b){!b?g+=a<2:f(b,a%b);} main(d){ for(; scanf("%d",a+n),*a; d=*a==n?n=g=!printf(g?"%f\n":"No estimate for this data set.\n",sqrt(3.*n*--n/g)):++n) for(;d;) f(a[d--],a[n]); }
「小数第6位まで出力せよ」と言われているので、"%.6f"というフォーマットを最初使っていたが、よく考えたらデフォルトでそうなってました。
sqrtの中で怪しいことをやっています(nikori環境では正常に動作しないことを確認済み)が、kosakもやっているはずなので、気にしないことにします。