Euler has design of a homepage and there is a link back to the overview for each solution.
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head><meta charset="utf-8" />
|
||||
<head><meta charset="utf-8"/>
|
||||
<title>EulerProblem035</title><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
|
||||
|
||||
<style type="text/css">
|
||||
/*!
|
||||
*
|
||||
@@ -11714,8 +11714,6 @@ ul.typeahead-list > li > a {
|
||||
.ansi-bold { font-weight: bold; }
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
/* Overrides of notebook CSS for static HTML export */
|
||||
body {
|
||||
@@ -11741,15 +11739,13 @@ div#notebook {
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- Custom stylesheet, it must be in the same directory as the html file -->
|
||||
<link rel="stylesheet" href="custom.css">
|
||||
|
||||
<link href="custom.css" rel="stylesheet"/>
|
||||
<!-- Loading mathjax macro -->
|
||||
<!-- Load mathjax -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
|
||||
<!-- MathJax configuration -->
|
||||
<script type="text/x-mathjax-config">
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS_HTML"></script>
|
||||
<!-- MathJax configuration -->
|
||||
<script type="text/x-mathjax-config">
|
||||
MathJax.Hub.Config({
|
||||
tex2jax: {
|
||||
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
|
||||
@@ -11766,19 +11762,17 @@ div#notebook {
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<!-- End of mathjax configuration --></head>
|
||||
<!-- End of mathjax configuration --></head>
|
||||
<body>
|
||||
<div tabindex="-1" id="notebook" class="border-box-sizing">
|
||||
<div class="container" id="notebook-container">
|
||||
|
||||
<div class="border-box-sizing" id="notebook" tabindex="-1">
|
||||
<div class="container" id="notebook-container">
|
||||
<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">
|
||||
<h1 id="Euler-Problem-35">Euler Problem 35<a class="anchor-link" href="#Euler-Problem-35">¶</a></h1><p>The number, 197, is called a circular prime because all rotations of the digits: 197, 971, and 719, are themselves prime.</p>
|
||||
<h1 id="Euler-Problem-35">Euler Problem 35<a class="anchor-link" href="#Euler-Problem-35">¶</a></h1><p><a href="/euler">Back to overview.</a></p><p>The number, 197, is called a circular prime because all rotations of the digits: 197, 971, and 719, are themselves prime.</p>
|
||||
<p>There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, and 97.</p>
|
||||
<p>How many circular primes are there below one million?</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -11787,15 +11781,14 @@ div#notebook {
|
||||
<div class="inner_cell">
|
||||
<div class="text_cell_render border-box-sizing rendered_html">
|
||||
<p>First we get all primes into a look-up table. Then we iterate them and check whether they are circular.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [1]:</div>
|
||||
<div class="prompt input_prompt">In [1]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">get_primes_smaller</span><span class="p">(</span><span class="n">number</span><span class="p">):</span>
|
||||
<span class="n">primes</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">prospects</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">2</span><span class="p">,</span> <span class="n">number</span><span class="p">)]</span>
|
||||
@@ -11809,17 +11802,15 @@ div#notebook {
|
||||
|
||||
<span class="n">ps</span> <span class="o">=</span> <span class="n">get_primes_smaller</span><span class="p">(</span><span class="mi">1000000</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 [2]:</div>
|
||||
<div class="prompt input_prompt">In [2]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">get_combinations</span><span class="p">(</span><span class="n">xs</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">xs</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="p">[]</span>
|
||||
@@ -11832,85 +11823,71 @@ div#notebook {
|
||||
<span class="n">rs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">xs</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">ys</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">rs</span>
|
||||
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">get_combinations</span><span class="p">(</span><span class="s2">"ab"</span><span class="p">)</span> <span class="o">==</span> <span class="p">[</span><span class="s2">"ab"</span><span class="p">,</span> <span class="s2">"ba"</span><span class="p">])</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">get_combinations</span><span class="p">(</span><span class="s2">"ab"</span><span class="p">)</span> <span class="o">==</span> <span class="p">[</span><span class="s2">"ab"</span><span class="p">,</span> <span class="s2">"ba"</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 [3]:</div>
|
||||
<div class="prompt input_prompt">In [3]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">from</span> <span class="nn">itertools</span> <span class="k">import</span> <span class="n">permutations</span>
|
||||
<span class="n">prime_set</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">ps</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">is_circular</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
<span class="n">cs</span> <span class="o">=</span> <span class="n">permutations</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">p</span><span class="p">))</span>
|
||||
<span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">cs</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">int</span><span class="p">(</span><span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="p">))</span> <span class="ow">in</span> <span class="n">prime_set</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">int</span><span class="p">(</span><span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="p">))</span> <span class="ow">in</span> <span class="n">prime_set</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_circular</span><span class="p">(</span><span class="s2">"2"</span><span class="p">)</span> <span class="o">==</span> <span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_circular</span><span class="p">(</span><span class="s2">"11"</span><span class="p">)</span> <span class="o">==</span> <span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_circular</span><span class="p">(</span><span class="s2">"47"</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_circular</span><span class="p">(</span><span class="s2">"2"</span><span class="p">)</span> <span class="o">==</span> <span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_circular</span><span class="p">(</span><span class="s2">"11"</span><span class="p">)</span> <span class="o">==</span> <span class="kc">True</span><span class="p">)</span>
|
||||
<span class="k">assert</span><span class="p">(</span><span class="n">is_circular</span><span class="p">(</span><span class="s2">"47"</span><span class="p">)</span> <span class="o">==</span> <span class="kc">False</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 [4]:</div>
|
||||
<div class="prompt input_prompt">In [4]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">s</span> <span class="o">=</span> <span class="nb">len</span><span class="p">([</span><span class="n">p</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">ps</span> <span class="k">if</span> <span class="n">is_circular</span><span class="p">(</span><span class="n">p</span><span class="p">)])</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"False solution </span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">s</span><span class="p">))</span>
|
||||
<span class="nb">print</span><span class="p">(</span><span class="s2">"False solution </span><span class="si">{}</span><span class="s2">"</span><span class="o">.</span><span class="n">format</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>False solution 22
|
||||
</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>We did not read the problem properly. Cycles are obviously not the same as permutations. If we change that we should get the solution in no time.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [5]:</div>
|
||||
<div class="prompt input_prompt">In [5]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">cyles</span><span class="p">(</span><span class="n">xs</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">xs</span><span class="p">)</span> <span class="o"><=</span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">xs</span>
|
||||
@@ -11921,55 +11898,37 @@ div#notebook {
|
||||
<span class="k">def</span> <span class="nf">is_circular</span><span class="p">(</span><span class="n">p</span><span class="p">):</span>
|
||||
<span class="n">cs</span> <span class="o">=</span> <span class="n">cyles</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">p</span><span class="p">))</span>
|
||||
<span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">cs</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">int</span><span class="p">(</span><span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="p">))</span> <span class="ow">in</span> <span class="n">prime_set</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">int</span><span class="p">(</span><span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">c</span><span class="p">))</span> <span class="ow">in</span> <span class="n">prime_set</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>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="cell border-box-sizing code_cell rendered">
|
||||
<div class="input">
|
||||
<div class="prompt input_prompt">In [6]:</div>
|
||||
<div class="prompt input_prompt">In [6]:</div>
|
||||
<div class="inner_cell">
|
||||
<div class="input_area">
|
||||
<div class="input_area">
|
||||
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">s</span> <span class="o">=</span> <span class="nb">len</span><span class="p">([</span><span class="n">p</span> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">ps</span> <span class="k">if</span> <span class="n">is_circular</span><span class="p">(</span><span class="n">p</span><span class="p">)])</span>
|
||||
<span class="n">s</span>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="output_wrapper">
|
||||
<div class="output">
|
||||
|
||||
|
||||
<div class="output_area">
|
||||
|
||||
<div class="prompt output_prompt">Out[6]:</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="output_text output_subarea output_execute_result">
|
||||
<pre>55</pre>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
|
||||
|
||||
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user