Adopted new convention from template

This commit is contained in:
David Doblas Jiménez 2022-10-02 18:51:03 +02:00
parent f0b531b7fc
commit 60fbe95ae2

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python3 #!/usr/bin/env python
""" """
Created on 02 Oct 2021 Created on 02 Oct 2021
@ -9,7 +9,7 @@ Solution for problem 55 of Project Euler
https://projecteuler.net/problem=55 https://projecteuler.net/problem=55
""" """
from utils import timeit, is_palindrome from utils import is_palindrome, timeit
@timeit("Problem 55") @timeit("Problem 55")
@ -25,23 +25,24 @@ def compute():
That is, 349 took three iterations to arrive at a palindrome. That is, 349 took three iterations to arrive at a palindrome.
Although no one has proved it yet, it is thought that some numbers, like 196, Although no one has proved it yet, it is thought that some numbers, like
never produce a palindrome. A number that never forms a palindrome through the 196, never produce a palindrome. A number that never forms a palindrome
reverse and add process is called a Lychrel number. Due to the theoretical nature through the reverse and add process is called a Lychrel number. Due to the
of these numbers, and for the purpose of this problem, we shall assume that a theoretical nature of these numbers, and for the purpose of this problem,
number is Lychrel until proven otherwise. In addition you are given that for we shall assume that a number is Lychrel until proven otherwise. In
every number below ten-thousand, it will either: addition you are given that for every number below ten-thousand, it will
either:
(i) become a palindrome in less than fifty iterations, or, (i) become a palindrome in less than fifty iterations, or,
(ii) no one, with all the computing power that exists, has managed so far to map (ii) no one, with all the computing power that exists, has managed so far
it to a palindrome. to map it to a palindrome.
In fact, 10677 is the first number to be shown to require over fifty iterations In fact, 10677 is the first number to be shown to require over fifty
before producing a palindrome: iterations before producing a palindrome:
4668731596684224866951378664 (53 iterations, 28-digits). 4668731596684224866951378664 (53 iterations, 28-digits).
Surprisingly, there are palindromic numbers that are themselves Lychrel numbers; Surprisingly, there are palindromic numbers that are themselves Lychrel
the first example is 4994. numbers; the first example is 4994.
How many Lychrel numbers are there below ten-thousand? How many Lychrel numbers are there below ten-thousand?
""" """
@ -50,7 +51,7 @@ def compute():
for n in range(11, 10_000): for n in range(11, 10_000):
num = n num = n
is_lychrel = True is_lychrel = True
for it in range(50): for _ in range(50):
num += int(str(num)[::-1]) num += int(str(num)[::-1])
if is_palindrome(num): if is_palindrome(num):
is_lychrel = False is_lychrel = False
@ -62,5 +63,4 @@ def compute():
if __name__ == "__main__": if __name__ == "__main__":
print(f"Result for Problem 55 is {compute()}")
print(f"Result for Problem 55: {compute()}")