Project Euler : Problem 14 Solved ( Collatz Problem )
Problem 14 of Project Euler is quite interesting.
The reason I say this is because you think it will be simple (and in fact it really is simple).
But doing it in Java has a certain snag to it.
Notice the hint they give you :
NOTE: Once the chain starts the terms are allowed to go above one million.
Then remember that wonderful BigInteger class in java that is so retardedly un-user friendly..
That is all I have to say.. It seems other languages have the edge on Java on this one. Users are reporting 0.81 secs execution time where as I'm only managing to get it done in 10secs (not my finest moment). Will attempt to get this number down, but I doubt it.
The Problem is as follows :
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?
Tips :
- Read the tip
- BigInteger
Project Euler Stats :
Total Research Time : 0 Days
Total Coding Time : 20mins
Total Code Execution Time : 9922ms