fork download
  1. #include <stdio.h>
  2.  
  3. int collatz(int a1, int *amax)
  4. {
  5. int count;
  6.  
  7. count = 1;
  8. *amax = a1;
  9. for(;;) {
  10. if (a1 == 1) {
  11. break;
  12. }
  13. count++;
  14. if (a1 % 2 == 0) {
  15. a1 /= 2;
  16. } else {
  17. a1 = a1 * 3 + 1;
  18. }
  19. if (a1 > *amax) {
  20. *amax = a1;
  21. }
  22. }
  23. return count;
  24. }
  25.  
  26. int main()
  27. {
  28. int i;
  29. int amax;
  30. int maxlen;
  31. int maxini;
  32. int len;
  33.  
  34. maxlen = 0;
  35. maxini = 0;
  36. for (i = 2; i <= 100000; i++) {
  37. len = collatz(i, &amax);
  38. if (len > maxlen) {
  39. maxlen = len;
  40. maxini = i;
  41. }
  42. }
  43. printf("%d, %d\n", maxini, maxlen);
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0.04s 2248KB
stdin
Standard input is empty
stdout
77031, 351