Tried to solve 55 till 57.
This commit is contained in:
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user