Adopted new convention from template
This commit is contained in:
parent
f0b531b7fc
commit
60fbe95ae2
@ -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()}")
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user