Done puzzle 64
[project-euler.git] / euler53.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 1,
6 "metadata": {
7 "collapsed": true
8 },
9 "outputs": [],
10 "source": [
11 "class Integer\n",
12 " def factorial\n",
13 " (1..self).inject(:*) || 1\n",
14 " end\n",
15 " alias :! :factorial\n",
16 "end"
17 ]
18 },
19 {
20 "cell_type": "code",
21 "execution_count": 2,
22 "metadata": {
23 "collapsed": false
24 },
25 "outputs": [
26 {
27 "data": {
28 "text/plain": [
29 "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]"
30 ]
31 },
32 "execution_count": 2,
33 "metadata": {},
34 "output_type": "execute_result"
35 }
36 ],
37 "source": [
38 "(1..100).each do |n|\n",
39 " (1..n).each do |r|\n",
40 " end\n",
41 "end"
42 ]
43 },
44 {
45 "cell_type": "code",
46 "execution_count": 6,
47 "metadata": {
48 "collapsed": false
49 },
50 "outputs": [
51 {
52 "data": {
53 "text/plain": [
54 "7"
55 ]
56 },
57 "execution_count": 6,
58 "metadata": {},
59 "output_type": "execute_result"
60 }
61 ],
62 "source": [
63 "(1..10).to_a.product((1..10).to_a).select {|n, r| n >= r}.map {|n, r| n.! / (r.! * (n - r).!)}.select {|c| c> 100}.length"
64 ]
65 },
66 {
67 "cell_type": "code",
68 "execution_count": 8,
69 "metadata": {
70 "collapsed": false
71 },
72 "outputs": [
73 {
74 "data": {
75 "text/plain": [
76 "4075"
77 ]
78 },
79 "execution_count": 8,
80 "metadata": {},
81 "output_type": "execute_result"
82 }
83 ],
84 "source": [
85 "(1..100).to_a.product((1..100).to_a).select {|n, r| \n",
86 " n >= r}.map {|n, r| \n",
87 " n.! / (r.! * (n - r).!)}.select {|c| \n",
88 " c > 10 ** 6}.length"
89 ]
90 },
91 {
92 "cell_type": "code",
93 "execution_count": null,
94 "metadata": {
95 "collapsed": true
96 },
97 "outputs": [],
98 "source": []
99 }
100 ],
101 "metadata": {
102 "kernelspec": {
103 "display_name": "Ruby 2.4.0",
104 "language": "ruby",
105 "name": "ruby"
106 },
107 "language_info": {
108 "file_extension": ".rb",
109 "mimetype": "application/x-ruby",
110 "name": "ruby",
111 "version": "2.4.0"
112 }
113 },
114 "nbformat": 4,
115 "nbformat_minor": 0
116 }