Euler_14.cpp (597B)
1 #include "Euler.h" 2 3 int lengthOfChain(llui number) 4 { 5 int length = 0; 6 7 while (number > 1) 8 { 9 if (number % 2 == 0) 10 { 11 number /= 2; 12 } 13 else 14 { 15 number = (number * 3) + 1; 16 } 17 18 length += 1; 19 } 20 21 return length; 22 } 23 24 llui Euler::CollatzConjecture() 25 { 26 int longestChain = 0; 27 int idx = 0; 28 29 for (int i = 0; i < 1000000; ++i) 30 { 31 int length = lengthOfChain(i); 32 33 if (length > longestChain) 34 { 35 longestChain = length; 36 idx = i; 37 } 38 } 39 40 return idx; 41 }