Euler Problem 26
Ronald Odero
ronaldodero at gmail.com
Wed Jul 2 07:30:00 BST 2008
Hello,
I'm determined to get to the bottom of this and am calculating it
manually. I will get back to you all soonest.
On 7/1/08, Miano Njoka <mianonjoka at gmail.com> wrote:
> This email is from a ubuntu-ke subscriber to other subscribers inluding
> you:)
> I was wrong the first time, got it after a couple of tries. good
> luck!!! :)
>
> On Jul 1, 2008, at 4:37 PM, kinuthiA muchanE wrote:
>
>> Miano,
>>
>> Just got back to the computer, right now I am struggling with "for"
>> loops :-/
>> I do not know what the answer is but check here
>> http://projecteuler.net/index.php?section=problems&id=26
>>
>> Kinuthia...
>> On Tue, 2008-07-01 at 14:34 +0300, Miano Njoka wrote:
>>> I've written a solution using C, I got d=831, one cycle is 69 digits
>>> long. What is the answer?
>>>
>>>
>>> On Jul 1, 2008, at 12:02 PM, Andrew Mathenge wrote:
>>>
>>>> This email is from a ubuntu-ke subscriber to other subscribers
>>>> inluding you:)
>>>> Only glad I could be of assistance. Let me know if you find a python
>>>> solution to the problem. I wrote a solution in perl, but I'm
>>>> interested in learning python.
>>>>
>>>> Good luck!
>>>>
>>>> Andrew.
>>>>
>>>> On Tue, Jul 1, 2008 at 2:50 AM, kinuthiA muchanE
>>>> <muchanek at gmail.com> wrote:
>>>>>
>>>>> On Mon, 2008-06-30 at 18:33 -0400, Andrew Mathenge wrote:
>>>>>> Actually, I think that understanding the question is the easiest
>>>>>> part.
>>>>> Not for me it seems, I think it is one of those days for me when
>>>>> even
>>>>> the obvious escapes you :-)
>>>>>> Here's the question as copied from the website:
>>>>>>
>>>>>> Find the value of d < 1000 for which 1/d contains the longest
>>>>>> recurring cycle in its decimal fraction part.
>>>>>>
>>>>>> Let's take the example that's given where d <= 10.
>>>>>>
>>>>>> When d = 7, the value of 1/d (1/7) is:
>>>>>>
>>>>>> 0.142857142857142857142857142857142857142857....
>>>>>
>>>>> Ah...okay
>>>>>>
>>>>>> As you can see, (142857) repeats indefinitely. It has a sequence
>>>>>> of 6
>>>>>> digits that repeat. This is longer than any of the others where
>>>>>> d <=
>>>>>> 10.
>>>>> That was the crux of the matter!
>>>>>>
>>>>>> Therefore, the question asks, for d = 1 to 1000, which value of d
>>>>>> has
>>>>>> the longest sequence of repeating digits in the fractional part?
>>>>>>
>>>>>> Quite rightfully so, you can't limit the number of digits to 9
>>>>>> as in
>>>>>> your example since there will be a number with a series of
>>>>>> repeating
>>>>>> digits greater than 9.
>>>>>>
>>>>>> For example, 1/17 is:
>>>>>>
>>>>>> 0.0588235294117647058823529411764705882352941176470588235294117647
>>>>>> .....
>>>>>>
>>>>>> or
>>>>>>
>>>>>> 0.(0588235294117647)
>>>>>>
>>>>>> The number of repeating digits in this sequence is 16.
>>>>>>
>>>>>> Hope that helps. I'm not a python programmer so I really can't
>>>>>> help
>>>>>> debug your code.
>>>>> It is now crystal clear, Anrdew, and thank you very much for
>>>>> bailing me
>>>>> out, do not worry about the code, I just wanted a nudge in the
>>>>> right
>>>>> direction ;-)
>>>>>>
>>>>>> Andrew.
>>>>>>
>>>>>> On Mon, Jun 30, 2008 at 4:03 PM, kinuthiA muchanE <muchanek at gmail.com
>>>>>>> wrote:
>>>>>>> This email is from a ubuntu-ke subscriber to other subscribers
>>>>>>> inluding you:)
>>>>>>>
>>>>>>> On Mon, 2008-06-30 at 22:04 +0300, Tony White wrote:
>>>>>>>> Hi
>>>>>>>>
>>>>>>>> My guess, your pattern is limiting you to uniquely the digits
>>>>>>>> 0-9, so
>>>>>>>
>>>>>>> ...and that is the whole idea IMHO, actually "input-ting" nothing
>>>>>>> would
>>>>>>> match my regular expression. There are only ten non-recurring
>>>>>>> digits in
>>>>>>> the world ie zero to nine, :-).
>>>>>>>> that's where it stops. Consider - (1011011101234101111109) could
>>>>>>>> also
>>>>>>>> be a valid sequence. ie, digits may be used more than once.
>>>>>>>
>>>>>>> My dear Tony, so what is the question? I thought they wanted the
>>>>>>> reciprocal of a number, that will give you the digits "123456789"
>>>>>>> in a
>>>>>>> non-repeating order. And 1011011101234101111109 would not match
>>>>>>> the
>>>>>>> regular expression I had! 1's are and 0's occur more than once!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Mugumo, I think there is always a mathematical angle to
>>>>>>> everything! And
>>>>>>> I am okay...
>>>>>>>
>>>>>>> Asante kwa kuweza kupata wasaa wa kunijibu, natumai tutaendelea
>>>>>>> kuwasiliana.
>>>>>>>
>>>>>>> Kinuthia...
>>>>>>>
>>>>>>>>
>>>>>>>> Tony
>>>>>>>>
>>>>>>>>
>>>>>>>> 2008/6/30 kinuthiA muchanE <muchanek at gmail.com>:
>>>>>>>>> This email is from a ubuntu-ke subscriber to other subscribers
>>>>>>>>> inluding you:)
>>>>>>>>> Habari wote,
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> I am trying to solve Problem Number 26
>>>>>>>>> (http://projecteuler.net/index.php?section=problems&id=26) on
>>>>>>>>> Project
>>>>>>>>> Euler but apparently the answer I am submitting is wrong.
>>>>>>>>>
>>>>>>>>> Here is the problem:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> A unit fraction contains 1 in the numerator. The decimal
>>>>>>>>> representation
>>>>>>>>> of the unit fractions with denominators 2 to 10 are given:
>>>>>>>>>
>>>>>>>>> 1/2
>>>>>>>>> =
>>>>>>>>> 0.5
>>>>>>>>> 1/3
>>>>>>>>> =
>>>>>>>>> 0.(3)
>>>>>>>>> 1/4
>>>>>>>>> =
>>>>>>>>> 0.25
>>>>>>>>> 1/5
>>>>>>>>> =
>>>>>>>>> 0.2
>>>>>>>>> 1/6
>>>>>>>>> =
>>>>>>>>> 0.1(6)
>>>>>>>>> 1/7
>>>>>>>>> =
>>>>>>>>> 0.(142857)
>>>>>>>>> 1/8
>>>>>>>>> =
>>>>>>>>> 0.125
>>>>>>>>> 1/9
>>>>>>>>> =
>>>>>>>>> 0.(1)
>>>>>>>>> 1/10
>>>>>>>>> =
>>>>>>>>> 0.1
>>>>>>>>>
>>>>>>>>> Where 0.1(6) means 0.166666..., and has a 1-digit recurring
>>>>>>>>> cycle. It
>>>>>>>>> can be seen that 1/7 has a 6-digit recurring cycle.
>>>>>>>>>
>>>>>>>>> Find the value of d < 1000 for which 1/d contains the longest
>>>>>>>>> recurring
>>>>>>>>> cycle in its decimal fraction part.
>>>>>>>>>
>>>>>>>>> I am giving the answer 38, because 1/38 = 0.0263157894. It
>>>>>>>>> seems I have
>>>>>>>>> misunderstood the question or I cant solve it! Here is the
>>>>>>>>> code(in
>>>>>>>>> Python) that I
>>>>>>>>> came up with:
>>>>>>>>>
>>>>>>>>> def aux(num):
>>>>>>>>> import re
>>>>>>>>> pattern = re.compile(r"^0?1?2?3?4?5?6?7?8?9?$")
>>>>>>>>>
>>>>>>>>> frac ="%.9f"%(1.0/num)
>>>>>>>>> fracSlice = frac[2:] # get the decimal
>>>>>>>>> fractional part, ie remove
>>>>>>>>> '0.'
>>>>>>>>>
>>>>>>>>> fracList = list(fracSlice) #convert string
>>>>>>>>> to a
>>>>>>>>> list
>>>>>>>>> fracList.sort() # I need
>>>>>>>>> to
>>>>>>>>> sort , because I will be searching by
>>>>>>>>> increasing order
>>>>>>>>>
>>>>>>>>> testFrac = "".join(fracList) # convert list back to a
>>>>>>>>> string,
>>>>>>>>> phew!
>>>>>>>>> if re.match(pattern,testFrac): # if the pattern matches,
>>>>>>>>> the
>>>>>>>>> number is
>>>>>>>>> our candidate
>>>>>>>>> print (num,fracSlice)
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> for b in xrange(1,1000):
>>>>>>>>> aux(b)
>>>>>>>>>
>>>>>>>>> Er... er, that does not exactly work as expected but it narrows
>>>>>>>>> the
>>>>>>>>> search to only 3 candidates because of the inclusion of the
>>>>>>>>> zero:
>>>>>>>>>
>>>>>>>>> (28, '035714286')
>>>>>>>>> (38, '026315789')
>>>>>>>>> (81, '012345679')
>>>>>>>>>
>>>>>>>>> For 28, the digit, in the fractional part, after 8 is 5, so 5
>>>>>>>>> is
>>>>>>>>> repeated and as for, 81 the next digit after 7 is 0, so again 0
>>>>>>>>> occurs
>>>>>>>>> twice. But for 38, the next digit after 9 is 4, and because it
>>>>>>>>> has NOT
>>>>>>>>> occurred before, I assume 38 is the correct answer... and I am
>>>>>>>>> wrong!
>>>>>>>>>
>>>>>>>>> I suspect I have completely misunderstood the question.
>>>>>>>>>
>>>>>>>>> Any ideas?
>>>>>>>>> Thanks!
>>>>>>>>>
>>>>>>>>> Kinuthia...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Ubuntu-ke mailing list
>>>>>>>>> Ubuntu-ke at lists.ubuntu.com
>>>>>>>>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ke
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Ubuntu-ke mailing list
>>>>>>> Ubuntu-ke at lists.ubuntu.com
>>>>>>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ke
>>>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> Ubuntu-ke mailing list
>>>> Ubuntu-ke at lists.ubuntu.com
>>>> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ke
>>>
>>
>
>
> --
> Ubuntu-ke mailing list
> Ubuntu-ke at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-ke
>
More information about the Ubuntu-ke
mailing list