Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
20
Task/Hailstone-sequence/Python/hailstone-sequence-2.py
Normal file
20
Task/Hailstone-sequence/Python/hailstone-sequence-2.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
from itertools import islice
|
||||
|
||||
|
||||
def hailstone(n):
|
||||
yield n
|
||||
while n > 1:
|
||||
n = 3 * n + 1 if n & 1 else n // 2
|
||||
yield n
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
h = hailstone(27)
|
||||
assert list(islice(h, 4)) == [27, 82, 41, 124]
|
||||
for _ in range(112 - 4 * 2):
|
||||
next(h)
|
||||
assert list(islice(h, 4)) == [8, 4, 2, 1]
|
||||
max_length, n = max((sum(1 for _ in hailstone(i)), i)
|
||||
for i in range(1, 100_000))
|
||||
print(f"Maximum length {max_length} was found for hailstone({n}) "
|
||||
f"for numbers <100,000")
|
||||
Loading…
Add table
Add a link
Reference in a new issue