# Problem 014

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?

NOTE: Once the chain starts the terms are allowed to go above one million.

Solution:
```Function Prob014() As Long Prob014 = 0 Dim NumWithLargestChain As Long = 0 Dim ChainCount As Long = 0 For StartNumber As Long = 999999 To 1 Step -1 Dim tmpNum As Long = StartNumber Dim tmpCount As Long = 0 Do tmpCount += 1 If tmpCount > ChainCount Then ChainCount = tmpCount NumWithLargestChain = StartNumber End If If tmpNum = 1 Then Exit Do If tmpNum Mod 2 = 0 Then tmpNum = tmpNum / 2 Else tmpNum = (tmpNum * 3) + 1 End If Loop Next Return NumWithLargestChain End Function```

Summary:
Thankfully, this was a lot easier than the previous problem I did. I skipped problem 12 and 13, but I’ll probably come back to them at some point. Problem 12 dealt with triangle numbers, which I’m not really familiar with. Problem 13 dealt with adding up a hundred 50-digit numbers, which seems like it would be easy, but I either would need a crazy-big numeric datatype or I’d need to come up with a new way to add the stuff up through some other fashion.