import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static long collatz(int maxN) { long res = 0; long n = 1; long count = 0; long largestCount = 0; long t = 0; for (long k = 1; k <= maxN; k++) { n = k; // reset to zero count = 0; // count how many steps to get to 1 while (n != 1) { // n = collatz(n) if ((n % 2) == 0) { n = n / 2; } else { n = 3 * n; n++; } // count the step count++; } // check for maximum count if (count > largestCount) { largestCount = count; res = k; } } // log // return maximum solution return res; } { collatz(20); collatz(50); collatz(100); collatz(1000); collatz(10000); collatz(100000); // collatz(1000000); } }
Standard input is empty
# MAX = 20, N = 18, Steps = 20 # MAX = 50, N = 27, Steps = 111 # MAX = 100, N = 97, Steps = 118 # MAX = 1000, N = 871, Steps = 178 # MAX = 10000, N = 6171, Steps = 261 # MAX = 100000, N = 77031, Steps = 350