aboutsummaryrefslogtreecommitdiff
path: root/python/014-longest_collatz_sequence.py
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-08-11 22:41:34 +0200
committerCharles <sircharlesaze@gmail.com>2019-08-11 22:41:34 +0200
commit1879caa1dd80cb11dd62403663917ad4bf7cc68e (patch)
treeea41c6dd83a9f9bbfe0a891237674342de92d533 /python/014-longest_collatz_sequence.py
parent6b16d921543a62d880171791d39bcc58560785fa (diff)
downloadproject_euler-1879caa1dd80cb11dd62403663917ad4bf7cc68e.tar.gz
project_euler-1879caa1dd80cb11dd62403663917ad4bf7cc68e.tar.bz2
project_euler-1879caa1dd80cb11dd62403663917ad4bf7cc68e.zip
rename all file with 3 zero padding
Diffstat (limited to 'python/014-longest_collatz_sequence.py')
-rw-r--r--python/014-longest_collatz_sequence.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/python/014-longest_collatz_sequence.py b/python/014-longest_collatz_sequence.py
new file mode 100644
index 0000000..e3c3caa
--- /dev/null
+++ b/python/014-longest_collatz_sequence.py
@@ -0,0 +1,16 @@
+from itertools import count
+
+
+def collatz_sequence_size(nb):
+ for i in count(1):
+ if nb == 1:
+ return i
+ nb = (nb / 2) if nb % 2 == 0 else (nb * 3 + 1)
+
+max_nb = (1, 0)
+for nb in range(1, 1_000_000):
+ col_seq_size = collatz_sequence_size(nb)
+ if col_seq_size > max_nb[1]:
+ max_nb = nb, col_seq_size
+
+print(max_nb)