w3resource

Python Challenges: Find the starting number, under ten thousand will create the longest chain

Python Challenges - 1: Exercise-42 with Solution

Write a Python program to find the starting number, under ten thousand will create the longest chain.

From Wikipedia - The Collatz conjecture is a conjecture in mathematics that concerns a sequence defined as follows: start with any positive integer n. Then each term is obtained from the previous term as follows: if the previous term is even, the next term is one half the previous term. If the previous term is odd, the next term is 3 times the previous term plus 1. The conjecture is that no matter what value of n, the sequence will always reach 1.
Python: Find the maximum total from top to bottom of the triangle below.

Sample Solution:

Python Code:

def create_sequence_num(n):
    terms = 1
    while n > 1:
        if n % 2 == 0:
            n = n / 2
        else:
            n = 3 * n + 1
        terms += 1
    return terms


def Collatz_starting_num():
    temp = 0
    i = 1
    while i < 10000:
        s = create_sequence_num(i)
        if s > temp:
            temp = s
            value = i
        i += 1

    return value

print(Collatz_starting_num())

Sample Output:

6171

Flowchart:

Python Flowchart: Find the starting number, under ten thousand will create the longest chain.

Python Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Python program to find the first triangle number to have over n(given) divisors.

Next: Write a Python program to compute s the sum of the digits of the number 220.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.