Skip to content

Challenge 0001: The 3n+1 problem #1

@dcordero

Description

@dcordero

We have prepared a branch in which you should work to solve this problem:

git checkout challenge0001_The_3n+1_problem

Please remember that you should not make any assumption in the challenges. Your solution should deal with negative numbers, decimals, wrong inputs, etc... unless it is indicated like that in the problem.

The challenge:

Consider the following algorithm to generate a sequence of numbers. Start with an integer n. If n is even, divide by 2. If n is odd, multiply by 3 and add 1. Repeat this process with the new value of n, terminating when n = 1. For example, the following sequence of numbers will be generated for n = 22:

22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

It is conjectured (but not yet proven) that this algorithm will terminate at n = 1 for every integer n. Still, the conjecture holds for all integers up to at least 1,000,000.

For an input n, the cycle-length of n is the number of numbers generated up to and including the 1. In the example above, the cycle length of 22 is 16. Given any two numbers i and j, you are to determine the maximum cycle length over all numbers between i and j, including both endpoints.

Input

The input will consist in a couple of integers. All of them will be less than 1,000,000 and greater than 0.

Output

Output the maximum cycle length found in the range defined by the input values i and j.

Sample Results

Input Output
1 10 20
100 200 125
201 210 89
900 1000 174

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions