diff --git a/src/gcd.d b/src/gcd.d new file mode 100644 index 0000000..f3acddb --- /dev/null +++ b/src/gcd.d @@ -0,0 +1,38 @@ +#include + +const int n = 1000; + +unsigned int Euclidean_gcd_rec(unsigned int x, unsigned int y){ + if(x==0) return y; + return Euclidean_gcd_rec(y % x, x); +} + +/* +unsigned int Euclidean_gcd_itr(unsigned int x, unsigned int y){ +} + +unsigned int binary_gcd_rec(unsigned int x, unsigned int y){ +} + +unsigned int binary_gcd_itr(unsigned int x, unsigned int y){ +} +*/ + + +int main(){ + unsigned int i, j, c; + + + c = 0; + for(i = 1; i <= n; i++){ + for(j = i + 1; j <= n; j++){ + if(Euclidean_gcd_rec(i, j) == 1){ + c++; + } + } + } + c = 2 * c + 1; + + printf("%f\n", (double) c / (n * n)); + return 0; +}