Skip to main content

Problem 42 Project Euler Solution with Python

Coded triangle numbers

The nth term of the sequence of triangle numbers is given by, tn = ½n(n+1); so the first ten triangle numbers are:
1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...
By converting each letter in a word to a number corresponding to its alphabetical position and adding these values we form a word value. For example, the word value for SKY is 19 + 11 + 25 = 55 = t10. If the word value is a triangle number then we shall call the word a triangle word.
Using words.txt (right click and 'Save Link/Target As...'), a 16K text file containing nearly two-thousand common English words, how many are triangle words?

This question is pretty simple. You will only have to know that a triangle number n will satisfy the condition of (8n+1) being a perfect square for numbers less than (253-1 = 9007199254740991. I got to know this from Matlab forum: Best way to determine if given number is triangular.

All the other operations are related to coding stuff which I have explained in program section.

Program

I have used open to do file operations. I am assuming that you know all the file operations.

Function converter will convert the given letter to a alphabetical position of the number. For example converter('A') will return 1, converter('S') will return 19 and so on.

We will loop through the words and map each and every word to converter function. This will return a list with the word converted to their alphabetical positions. Finally sum function will find the sum of the numbers in the list. i.e. we are simply finding the word value in this statement at line 36. For example map(converter,'SKY') will return 55 and so on.

After we have converted the word to word value, we are checking if sqrt(8x+1) is a perfect square or not. i.e. we are checking if the number is triangle number or not.

If the number is a triangle  number then you can increase the value of counter.

You can download the source code from Github Gist pep42.py

The source code follows PEP8 standard.

Output

Summary

I don't have any comments on the problem. I am satisfied with the execution time. It has a good performance. I think one can still optimize the code to make it is still faster.

As always you can comment in the comment box below if you have any doubt or didn't understand anything. I will be glad to help you.

Please do comment if you have found any typo or have a different program/better program or have any suggestion. I will be glad to view each of them.

You can also contact me.

Thank you. Have a nice day😃.

Popular posts from this blog

Project Euler Problem 62 solution with python

Cubic permutations ¶ The cube, 41063625 (3453), can be permuted to produce two other cubes: 56623104 (3843) and 66430125 (4053). In fact, 41063625 is the smallest cube which has exactly three permutations of its digits which are also cube. Find the smallest cube for which exactly five permutations of its digits are cube.

Project Euler Problem 67 Solution with Python

Maximum path sum II By starting at the top of the triangle below and moving to adjacent numbers on the row below, the maximum total from top to bottom is 23. 3 7 4 2 4 6 8 5 9 3 That is, 3 + 7 + 4 + 9 = 23. Find the maximum total from top to bottom in triangle.txt (right click and 'Save Link/Target As...'), a 15K text file containing a triangle with one-hundred rows.

Add/Embed SVG to Blogger website

In this post I will tell you my method(trick) of adding SVG images in a blogger website or blog. Before starting , the first thin g I am assu m ing is that you are aware of SVG if you are here. If not please see S calable V ec tor G raphics Recently when I tried to embed a SVG image for a post on pygal, I tried uploading the SVG file and blogger Image uploader came up with an error, because of which I had to find some other way.  SVG File upload Error in Blogger  I started sea rc hing Google " Embed SVG in Blogger " . I found blogorrhea , w h ich gave some i nformatio n on add ing SVG directly as a markup , which worked , but I faced another problem using this . Also th is guy has used lot of Javascript which was confusin g for me, being new to using SVG.   So I first t houg ht of learning on h ow to embed SVG in HTML and t his on e worked out. Actually we can embed SVG in HTML i n following ways: Using Object tag Using Iframe tag Using embed...