Merge pull request #205 from domix80/problem_014

Feat: Project Euler Problem 14
This commit is contained in:
Stepfen Shawn 2023-02-24 07:09:05 +08:00 committed by GitHub
commit 753be7a8a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,41 @@
#Problem 14: https://projecteuler.net/problem=14
#Problem Statement:
#The following iterative sequence is defined for the set of positive integers:
#
# n → n/2 (n is even)
# n → 3n + 1 (n is odd)
#
#Using the rule above and starting with 13, we generate the following sequence:
#
# 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1
#
#It can be seen that this sequence (starting at 13 and finishing at 1) contains
#10 terms. Although it has not been proved yet (Collatz Problem), it is thought
#that all starting numbers finish at 1.
#Which starting number, under one million, produces the longest chain?
def solution()
index_best_result = 0
for num in 2..1000000
index_candidate = 0
n = num
while n > 1
if n%2 == 0
n = n / 2
else
n = (3*n) + 1
end
index_candidate +=1
end
if index_best_result < index_candidate
index_best_result = index_candidate
value = num
end
end
result = value
end
answer = solution()
p answer