PyPE solution to PE problem 12

Registered by Scott Armitage

PyPE solution to PE problem 12

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
None
Started by
Scott Armitage
Completed by
Scott Armitage

Sprints

Whiteboard

    ProjectEuler.net problem 12
    ===========================

    The sequence of triangle numbers is generated by adding the natural numbers
    So the 7^(th) triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The
    first ten terms would be:

        1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...

    Let us list the factors of the first seven triangle numbers:

         1: 1
         3: 1,3
         6: 1,2,3,6
        10: 1,2,5,10
        15: 1,3,5,15
        21: 1,3,7,21
        28: 1,2,4,7,14,28

    We can see that 28 is the first triangle number to have over five divisors.

    What is the value of the first triangle number to have over five hundred
    divisors?

    Solution
    --------

    We loop over all indexes starting from 1 (using itertools.count to create a
    never-ending incrementing generator). We note that any given triangular
    number can be calculated using

        Tn = n*(n+1)/2

    and thus we know that

        divisors(Tn) = { divisors(n/2) + divisors(n+1) for n even
                       { divisors(n) + divisors((n+1)/2) for n odd.

    TODO: Improve primefactors, primedecomposition, and numdivisors functions.

    Answer
    ------

    76576500

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.