Added html for all current ipython solutions.

This commit is contained in:
2018-02-03 15:39:01 +01:00
parent 34fefc2a2d
commit 3f5ee98ee8
3 changed files with 431 additions and 4 deletions

View File

@@ -276,14 +276,15 @@ div#notebook {
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="prompt input_prompt">In&nbsp;[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_largest_prime</span><span class="p">(</span><span class="n">number</span><span class="p">):</span>
<span class="k">return</span> <span class="n">get_prime_factors</span><span class="p">(</span><span class="n">number</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">get_largest_prime</span><span class="p">(</span><span class="mi">13195</span><span class="p">)</span> <span class="o">==</span> <span class="mi">29</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">get_largest_prime</span><span class="p">(</span><span class="mi">600851475143</span><span class="p">))</span>
<span class="c1">#print(get_largest_prime(600851475143))</span>
<span class="nb">print</span><span class="p">(</span><span class="mi">6857</span><span class="p">)</span> <span class="c1"># computed the previously but remove it so that we can reexecute the complete kernel</span>
</pre></div>
</div>
@@ -317,16 +318,72 @@ div#notebook {
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[&nbsp;]:</div>
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span>
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">is_prime</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">smaller_primes</span><span class="p">):</span>
<span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">smaller_primes</span><span class="p">:</span>
<span class="k">if</span> <span class="n">n</span> <span class="o">%</span> <span class="n">s</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">False</span>
<span class="k">if</span> <span class="n">s</span> <span class="o">*</span> <span class="n">s</span> <span class="o">&gt;</span> <span class="n">n</span><span class="p">:</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">return</span> <span class="kc">True</span>
<span class="k">def</span> <span class="nf">prime_generator_function</span><span class="p">():</span>
<span class="n">primes</span> <span class="o">=</span> <span class="p">[</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">7</span><span class="p">]</span>
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">primes</span><span class="p">:</span>
<span class="k">yield</span> <span class="n">p</span>
<span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="n">p</span> <span class="o">+=</span> <span class="mi">2</span>
<span class="k">if</span> <span class="n">is_prime</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">primes</span><span class="p">):</span>
<span class="n">primes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
<span class="k">yield</span> <span class="n">p</span>
<span class="k">def</span> <span class="nf">get_prime_factors</span><span class="p">(</span><span class="n">number</span><span class="p">):</span>
<span class="n">prime_generator</span> <span class="o">=</span> <span class="n">prime_generator_function</span><span class="p">()</span>
<span class="n">remainder</span> <span class="o">=</span> <span class="n">number</span>
<span class="n">factors</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">prime_generator</span><span class="p">:</span>
<span class="k">while</span> <span class="n">remainder</span> <span class="o">%</span> <span class="n">p</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">remainder</span> <span class="o">/=</span> <span class="n">p</span>
<span class="n">factors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span>
<span class="k">if</span> <span class="n">remainder</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">p</span> <span class="o">*</span> <span class="n">p</span> <span class="o">&gt;</span> <span class="n">number</span><span class="p">:</span>
<span class="k">break</span>
<span class="k">if</span> <span class="n">remainder</span> <span class="o">!=</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">factors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">remainder</span><span class="p">)</span>
<span class="k">return</span> <span class="n">factors</span>
<span class="nb">print</span><span class="p">(</span><span class="n">get_largest_prime</span><span class="p">(</span><span class="mi">600851475143</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>6857
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<p>Here we go. Obviously much better than precalculation primes that we never need.</p>
</div>
</div>
</div>
</div>
</div>

File diff suppressed because one or more lines are too long

0
ipython/EulerProblem004.ipynb Executable file → Normal file
View File