Tried to solve 55 till 57.
parent
4acfe89f92
commit
147a13a01f
|
@ -36,6 +36,85 @@
|
|||
"NOTE: Wording was modified slightly on 24 April 2007 to emphasise the theoretical nature of Lychrel numbers."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_digits(n):\n",
|
||||
" d = []\n",
|
||||
" while n:\n",
|
||||
" d.append(n % 10)\n",
|
||||
" n //= 10\n",
|
||||
" return d\n",
|
||||
"\n",
|
||||
"def is_pilandrome(n):\n",
|
||||
" ds = get_digits(n)\n",
|
||||
" len_ds = len(ds)\n",
|
||||
" if len_ds < 2:\n",
|
||||
" return True\n",
|
||||
" for i in range(0, len_ds // 2):\n",
|
||||
" if ds[i] != ds[len_ds - i - 1]:\n",
|
||||
" return False\n",
|
||||
" return True\n",
|
||||
"\n",
|
||||
"assert(is_pilandrome(1337) == False)\n",
|
||||
"assert(is_pilandrome(1331))\n",
|
||||
"assert(is_pilandrome(131))\n",
|
||||
"assert(is_pilandrome(132) == False)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def get_digit_inverse(n):\n",
|
||||
" ds = get_digits(n)\n",
|
||||
" base = 1\n",
|
||||
" i = 0\n",
|
||||
" for d in ds[::-1]:\n",
|
||||
" i += (base * d)\n",
|
||||
" base *= 10\n",
|
||||
" return i\n",
|
||||
"\n",
|
||||
"assert(get_digit_inverse(47) == 74)\n",
|
||||
"assert(get_digit_inverse(47) == 74)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 24,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def is_not_lychrel(n, iterations=50):\n",
|
||||
" for i in range(0, iterations):\n",
|
||||
" n = n + get_digit_inverse(n)\n",
|
||||
" if is_pilandrome(n):\n",
|
||||
" return (i + 1)\n",
|
||||
" return 0\n",
|
||||
"\n",
|
||||
"assert(is_not_lychrel(47) == 1)\n",
|
||||
"assert(is_not_lychrel(349) == 3)\n",
|
||||
"assert(is_not_lychrel(10677, 100) == 53)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 27,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"249\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"lychrels = [n for n in range(1, 10000) if is_not_lychrel(n) == 0]\n",
|
||||
"s = len(lychrels)\n",
|
||||
"print(s)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
|
|
|
@ -13,9 +13,46 @@
|
|||
"collapsed": true
|
||||
},
|
||||
"source": [
|
||||
"A googol (10100) is a massive number: one followed by one-hundred zeros; 100100 is almost unimaginably large: one followed by two-hundred zeros. Despite their size, the sum of the digits in each number is only 1.\n",
|
||||
"A googol ($10^{100}$) is a massive number: one followed by one-hundred zeros; $100^{100}$ is almost unimaginably large: one followed by two-hundred zeros. Despite their size, the sum of the digits in each number is only 1.\n",
|
||||
"\n",
|
||||
"Considering natural numbers of the form, ab, where a, b < 100, what is the maximum digital sum?"
|
||||
"Considering natural numbers of the form, $a^b$, where $a, b < 100$, what is the maximum digital sum?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_digit_sum(n):\n",
|
||||
" s = 0\n",
|
||||
" while n != 0:\n",
|
||||
" s += (n % 10)\n",
|
||||
" n //= 10\n",
|
||||
" return s\n",
|
||||
"\n",
|
||||
"assert(get_digit_sum(1337) == 14)\n",
|
||||
"assert(get_digit_sum(100**100) == 1)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"972\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"s = max([get_digit_sum(a**b) for a in range(1, 100) for b in range(1, 100)])\n",
|
||||
"print(s)"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
@ -34,6 +34,87 @@
|
|||
"In the first one-thousand expansions, how many fractions contain a numerator with more digits than denominator?"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def get_digit_count(n):\n",
|
||||
" c = 1\n",
|
||||
" while n:\n",
|
||||
" n += 1\n",
|
||||
" n //= 10\n",
|
||||
" return d"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 44,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def gcd(a, b):\n",
|
||||
" if b > a:\n",
|
||||
" a, b = b, a\n",
|
||||
" while a % b != 0:\n",
|
||||
" a, b = b, a % b\n",
|
||||
" return b\n",
|
||||
" \n",
|
||||
"assert(gcd(100, 35) == 5)\n",
|
||||
"\n",
|
||||
"def add_fractions(n1, d1, n2, d2):\n",
|
||||
" d = d1 * d2\n",
|
||||
" n1 = n1 * (d // d1)\n",
|
||||
" n2 = n2 * (d // d2)\n",
|
||||
" n = n1 + n2\n",
|
||||
" p = gcd(n, d)\n",
|
||||
" return (n // p, d // p)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 54,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def next_expension(n, d):\n",
|
||||
" n, d = add_fractions(1, 1, n, d)\n",
|
||||
" return add_fractions(1, 1, d, n)\n",
|
||||
"\n",
|
||||
"c = 0\n",
|
||||
"\n",
|
||||
"n, d = (3, 2)\n",
|
||||
"for i in range(1000):\n",
|
||||
" if get_digit_count(n)> get_digit_count(d):\n",
|
||||
" c += 1\n",
|
||||
" n, d = next_expension(n, d)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 55,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"153\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"s = c\n",
|
||||
"print(s)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
|
|
|
@ -11794,6 +11794,94 @@ div#notebook {
|
|||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [10]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">get_digits</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<span class="n">d</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">while</span> <span class="n">n</span><span class="p">:</span>
|
||||
<span class="n">d</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">n</span> <span class="o">%</span> <span class="mi">10</span><span class="p">)</span>
|
||||
<span class="n">n</span> <span class="o">//=</span> <span class="mi">10</span>
|
||||
<span class="k">return</span> <span class="n">d</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">is_pilandrome</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<span class="n">ds</span> <span class="o">=</span> <span class="n">get_digits</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
|
||||
<span class="n">len_ds</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">ds</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">len_ds</span> <span class="o"><</span> <span class="mi">2</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="kc">True</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">len_ds</span> <span class="o">//</span> <span class="mi">2</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">ds</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">!=</span> <span class="n">ds</span><span class="p">[</span><span class="n">len_ds</span> <span class="o">-</span> <span class="n">i</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]:</span>
|
||||
<span class="k">return</span> <span class="kc">False</span>
|
||||
<span class="k">return</span> <span class="kc">True</span>
|
||||
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_pilandrome</span><span class="p">(</span><span class="mi">1337</span><span class="p">)</span> <span class="o">==</span> <span class="kc">False</span><span class="p">)</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_pilandrome</span><span class="p">(</span><span class="mi">1331</span><span class="p">))</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_pilandrome</span><span class="p">(</span><span class="mi">131</span><span class="p">))</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_pilandrome</span><span class="p">(</span><span class="mi">132</span><span class="p">)</span> <span class="o">==</span> <span class="kc">False</span><span class="p">)</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">get_digit_inverse</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<span class="n">ds</span> <span class="o">=</span> <span class="n">get_digits</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
|
||||
<span class="n">base</span> <span class="o">=</span> <span class="mi">1</span>
|
||||
<span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">ds</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">]:</span>
|
||||
<span class="n">i</span> <span class="o">+=</span> <span class="p">(</span><span class="n">base</span> <span class="o">*</span> <span class="n">d</span><span class="p">)</span>
|
||||
<span class="n">base</span> <span class="o">*=</span> <span class="mi">10</span>
|
||||
<span class="k">return</span> <span class="n">i</span>
|
||||
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">get_digit_inverse</span><span class="p">(</span><span class="mi">47</span><span class="p">)</span> <span class="o">==</span> <span class="mi">74</span><span class="p">)</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">get_digit_inverse</span><span class="p">(</span><span class="mi">47</span><span class="p">)</span> <span class="o">==</span> <span class="mi">74</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [24]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">is_not_lychrel</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">iterations</span><span class="o">=</span><span class="mi">50</span><span class="p">):</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">iterations</span><span class="p">):</span>
|
||||
<span class="n">n</span> <span class="o">=</span> <span class="n">n</span> <span class="o">+</span> <span class="n">get_digit_inverse</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">is_pilandrome</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="mi">0</span>
|
||||
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_not_lychrel</span><span class="p">(</span><span class="mi">47</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_not_lychrel</span><span class="p">(</span><span class="mi">349</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">)</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_not_lychrel</span><span class="p">(</span><span class="mi">10677</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span> <span class="o">==</span> <span class="mi">53</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [27]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">lychrels</span> <span class="o">=</span> <span class="p">[</span><span class="n">n</span> <span class="k">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">10000</span><span class="p">)</span> <span class="k">if</span> <span class="n">is_not_lychrel</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span><span class="p">]</span>
|
||||
<span class="n">s</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lychrels</span><span class="p">)</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="output_wrapper">
|
||||
<div class="output">
|
||||
<div class="output_area">
|
||||
<div class="prompt"></div>
|
||||
<div class="output_subarea output_stream output_stdout output_text">
|
||||
<pre>249
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [ ]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
|
|
|
@ -11778,8 +11778,50 @@ div#notebook {
|
|||
</div>
|
||||
<div class="inner_cell">
|
||||
<div class="text_cell_render border-box-sizing rendered_html">
|
||||
<p>A googol (10100) is a massive number: one followed by one-hundred zeros; 100100 is almost unimaginably large: one followed by two-hundred zeros. Despite their size, the sum of the digits in each number is only 1.</p>
|
||||
<p>Considering natural numbers of the form, ab, where a, b < 100, what is the maximum digital sum?</p>
|
||||
<p>A googol ($10^{100}$) is a massive number: one followed by one-hundred zeros; $100^{100}$ is almost unimaginably large: one followed by two-hundred zeros. Despite their size, the sum of the digits in each number is only 1.</p>
|
||||
<p>Considering natural numbers of the form, $a^b$, where $a, b < 100$, what is the maximum digital sum?</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [3]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">get_digit_sum</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<span class="n">s</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="k">while</span> <span class="n">n</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="n">s</span> <span class="o">+=</span> <span class="p">(</span><span class="n">n</span> <span class="o">%</span> <span class="mi">10</span><span class="p">)</span>
|
||||
<span class="n">n</span> <span class="o">//=</span> <span class="mi">10</span>
|
||||
<span class="k">return</span> <span class="n">s</span>
|
||||
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">get_digit_sum</span><span class="p">(</span><span class="mi">1337</span><span class="p">)</span> <span class="o">==</span> <span class="mi">14</span><span class="p">)</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">get_digit_sum</span><span class="p">(</span><span class="mi">100</span><span class="o">**</span><span class="mi">100</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [8]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">s</span> <span class="o">=</span> <span class="nb">max</span><span class="p">([</span><span class="n">get_digit_sum</span><span class="p">(</span><span class="n">a</span><span class="o">**</span><span class="n">b</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">100</span><span class="p">)</span> <span class="k">for</span> <span class="n">b</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">100</span><span class="p">)])</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="output_wrapper">
|
||||
<div class="output">
|
||||
<div class="output_area">
|
||||
<div class="prompt"></div>
|
||||
<div class="output_subarea output_stream output_stdout output_text">
|
||||
<pre>972
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -11796,6 +11796,92 @@ div#notebook {
|
|||
<div class="prompt input_prompt">In [ ]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">get_digit_count</span><span class="p">(</span><span class="n">n</span><span class="p">):</span>
|
||||
<span class="n">c</span> <span class="o">=</span> <span class="mi">1</span>
|
||||
<span class="k">while</span> <span class="n">n</span><span class="p">:</span>
|
||||
<span class="n">n</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<span class="n">n</span> <span class="o">//=</span> <span class="mi">10</span>
|
||||
<span class="k">return</span> <span class="n">d</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [44]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">gcd</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">b</span> <span class="o">></span> <span class="n">a</span><span class="p">:</span>
|
||||
<span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="n">b</span><span class="p">,</span> <span class="n">a</span>
|
||||
<span class="k">while</span> <span class="n">a</span> <span class="o">%</span> <span class="n">b</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="o">=</span> <span class="n">b</span><span class="p">,</span> <span class="n">a</span> <span class="o">%</span> <span class="n">b</span>
|
||||
<span class="k">return</span> <span class="n">b</span>
|
||||
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">gcd</span><span class="p">(</span><span class="mi">100</span><span class="p">,</span> <span class="mi">35</span><span class="p">)</span> <span class="o">==</span> <span class="mi">5</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">add_fractions</span><span class="p">(</span><span class="n">n1</span><span class="p">,</span> <span class="n">d1</span><span class="p">,</span> <span class="n">n2</span><span class="p">,</span> <span class="n">d2</span><span class="p">):</span>
|
||||
<span class="n">d</span> <span class="o">=</span> <span class="n">d1</span> <span class="o">*</span> <span class="n">d2</span>
|
||||
<span class="n">n1</span> <span class="o">=</span> <span class="n">n1</span> <span class="o">*</span> <span class="p">(</span><span class="n">d</span> <span class="o">//</span> <span class="n">d1</span><span class="p">)</span>
|
||||
<span class="n">n2</span> <span class="o">=</span> <span class="n">n2</span> <span class="o">*</span> <span class="p">(</span><span class="n">d</span> <span class="o">//</span> <span class="n">d2</span><span class="p">)</span>
|
||||
<span class="n">n</span> <span class="o">=</span> <span class="n">n1</span> <span class="o">+</span> <span class="n">n2</span>
|
||||
<span class="n">p</span> <span class="o">=</span> <span class="n">gcd</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="n">n</span> <span class="o">//</span> <span class="n">p</span><span class="p">,</span> <span class="n">d</span> <span class="o">//</span> <span class="n">p</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [54]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">next_expension</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">d</span><span class="p">):</span>
|
||||
<span class="n">n</span><span class="p">,</span> <span class="n">d</span> <span class="o">=</span> <span class="n">add_fractions</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">add_fractions</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="n">d</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
||||
|
||||
<span class="n">c</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
|
||||
<span class="n">n</span><span class="p">,</span> <span class="n">d</span> <span class="o">=</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1000</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">get_digit_count</span><span class="p">(</span><span class="n">n</span><span class="p">)</span><span class="o">></span> <span class="n">get_digit_count</span><span class="p">(</span><span class="n">d</span><span class="p">):</span>
|
||||
<span class="n">c</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
<span class="n">n</span><span class="p">,</span> <span class="n">d</span> <span class="o">=</span> <span class="n">next_expension</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [55]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">s</span> <span class="o">=</span> <span class="n">c</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="output_wrapper">
|
||||
<div class="output">
|
||||
<div class="output_area">
|
||||
<div class="prompt"></div>
|
||||
<div class="output_subarea output_stream output_stdout output_text">
|
||||
<pre>153
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [ ]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue