fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int c0;
  6. int steps = 0;
  7.  
  8. // Leer el número inicial
  9. cout << "Enter a natural number: ";
  10. cin >> c0;
  11.  
  12. // Validar que el número sea positivo
  13. if (c0 <= 0) {
  14. cout << "Error: The number must be a positive integer." << endl;
  15. return 1;
  16. }
  17.  
  18. // Aplicar las reglas de Collatz
  19. while (c0 != 1) {
  20. if (c0 % 2 == 0) {
  21. c0 = c0 / 2; // Si es par, dividir por 2
  22. } else {
  23. c0 = 3 * c0 + 1; // Si es impar, multiplicar por 3 y sumar 1
  24. }
  25. cout << c0 << endl; // Mostrar el valor intermedio
  26. steps++; // Incrementar el contador de pasos
  27. }
  28.  
  29. // Mostrar el número total de pasos
  30. cout << "steps = " << steps << endl;
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0.01s 5268KB
stdin
Standard input is empty
stdout
Enter a natural number: 16366
8183
24550
12275
36826
18413
55240
27620
13810
6905
20716
10358
5179
15538
7769
23308
11654
5827
17482
8741
26224
13112
6556
3278
1639
4918
2459
7378
3689
11068
5534
2767
8302
4151
12454
6227
18682
9341
28024
14012
7006
3503
10510
5255
15766
7883
23650
11825
35476
17738
8869
26608
13304
6652
3326
1663
4990
2495
7486
3743
11230
5615
16846
8423
25270
12635
37906
18953
56860
28430
14215
42646
21323
63970
31985
95956
47978
23989
71968
35984
17992
8996
4498
2249
6748
3374
1687
5062
2531
7594
3797
11392
5696
2848
1424
712
356
178
89
268
134
67
202
101
304
152
76
38
19
58
29
88
44
22
11
34
17
52
26
13
40
20
10
5
16
8
4
2
1
steps = 129