Done puzzle 64
[project-euler.git] / euler48.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 1,
6 "metadata": {
7 "collapsed": false
8 },
9 "outputs": [
10 {
11 "data": {
12 "text/plain": [
13 ":modular_exponent"
14 ]
15 },
16 "execution_count": 1,
17 "metadata": {},
18 "output_type": "execute_result"
19 }
20 ],
21 "source": [
22 "# Calculate ( n ** e ) mod b\n",
23 "def modular_exponent(n, e, b)\n",
24 " e_prime = 1\n",
25 " c = n % b\n",
26 " while e_prime < e\n",
27 " c = (c * n) % b\n",
28 " e_prime += 1\n",
29 " end\n",
30 " c\n",
31 "end"
32 ]
33 },
34 {
35 "cell_type": "code",
36 "execution_count": 6,
37 "metadata": {
38 "collapsed": false
39 },
40 "outputs": [
41 {
42 "data": {
43 "text/plain": [
44 "4"
45 ]
46 },
47 "execution_count": 6,
48 "metadata": {},
49 "output_type": "execute_result"
50 }
51 ],
52 "source": [
53 "modular_exponent 4, 3, 10"
54 ]
55 },
56 {
57 "cell_type": "code",
58 "execution_count": 7,
59 "metadata": {
60 "collapsed": false
61 },
62 "outputs": [
63 {
64 "data": {
65 "text/plain": [
66 ":self_powers"
67 ]
68 },
69 "execution_count": 7,
70 "metadata": {},
71 "output_type": "execute_result"
72 }
73 ],
74 "source": [
75 "def self_powers(n_max, b)\n",
76 " (1..n_max).map {|n| modular_exponent n, n, b}.sum % b\n",
77 "end"
78 ]
79 },
80 {
81 "cell_type": "code",
82 "execution_count": 10,
83 "metadata": {
84 "collapsed": false
85 },
86 "outputs": [
87 {
88 "data": {
89 "text/plain": [
90 "10405071317"
91 ]
92 },
93 "execution_count": 10,
94 "metadata": {},
95 "output_type": "execute_result"
96 }
97 ],
98 "source": [
99 "self_powers 10, 1000000000000"
100 ]
101 },
102 {
103 "cell_type": "code",
104 "execution_count": 11,
105 "metadata": {
106 "collapsed": false
107 },
108 "outputs": [
109 {
110 "data": {
111 "text/plain": [
112 "9110846700"
113 ]
114 },
115 "execution_count": 11,
116 "metadata": {},
117 "output_type": "execute_result"
118 }
119 ],
120 "source": [
121 "self_powers 1000, 10**10"
122 ]
123 },
124 {
125 "cell_type": "code",
126 "execution_count": null,
127 "metadata": {
128 "collapsed": true
129 },
130 "outputs": [],
131 "source": []
132 }
133 ],
134 "metadata": {
135 "kernelspec": {
136 "display_name": "Ruby 2.4.0",
137 "language": "ruby",
138 "name": "ruby"
139 },
140 "language_info": {
141 "file_extension": ".rb",
142 "mimetype": "application/x-ruby",
143 "name": "ruby",
144 "version": "2.4.0"
145 }
146 },
147 "nbformat": 4,
148 "nbformat_minor": 0
149 }