diff options
Diffstat (limited to 'euler53.c')
-rw-r--r-- | euler53.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/euler53.c b/euler53.c new file mode 100644 index 0000000..3e71c87 --- /dev/null +++ b/euler53.c @@ -0,0 +1,26 @@ +#include <stdio.h> + +/* number of r s.t. C(n, r)>x */ +int nr_ncr_bigger(int n, int x) +{ + int prod = 1; + int r = 0; + + while (prod <= x && r*2 < n) { + r++; + prod = prod * (n-r+1) / r; + } + + if (prod <= x) + return 0; + else + return n - r*2 + 1; +} + +int main() +{ + int cnt = 0; + for (int i = 1; i <= 100; i++) + cnt += nr_ncr_bigger(i, 1000000); + printf("%d\n", cnt); +} |