aboutsummaryrefslogtreecommitdiff
path: root/python/14-longest_collatz_sequence.py
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-08-11 18:42:52 +0200
committerCharles <sircharlesaze@gmail.com>2019-08-11 18:42:52 +0200
commit7b624de8e3e3637a07364f992c1d7e4185e4a872 (patch)
treefdb9b0c3f9185b267f9f7bfb9cb4b0e4cdd8cc16 /python/14-longest_collatz_sequence.py
downloadproject_euler-7b624de8e3e3637a07364f992c1d7e4185e4a872.tar.gz
project_euler-7b624de8e3e3637a07364f992c1d7e4185e4a872.tar.bz2
project_euler-7b624de8e3e3637a07364f992c1d7e4185e4a872.zip
initial commit
Diffstat (limited to 'python/14-longest_collatz_sequence.py')
-rw-r--r--python/14-longest_collatz_sequence.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/python/14-longest_collatz_sequence.py b/python/14-longest_collatz_sequence.py
new file mode 100644
index 0000000..e3c3caa
--- /dev/null
+++ b/python/14-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)