New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Challenge 0001: The 3n+1 problem #1

Open
dcordero opened this Issue Jan 19, 2016 · 0 comments

Comments

Projects
None yet
1 participant
@dcordero
Copy link
Member

dcordero commented Jan 19, 2016

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

@dcordero dcordero added Challenge Pending and removed Challenge labels Jan 19, 2016

@dcordero dcordero added Challenge #1 and removed Pending labels Feb 12, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment