Euler Problem 26

Miano Njoka mianonjoka at gmail.com
Tue Jul 1 12:34:19 BST 2008


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




More information about the Ubuntu-ke mailing list