Cerința
Fie număr natural n
. Acestuia i se aplică în mod repetat următoarele transformări:
- dacă
n
este par, devinen/2
- dacă
n
este impar, devine3*n+1
În 1937 matematicianul Lothar Collatz a formulat următoarea conjectură : pentru orice număr natural, în urma transformărilor numărul devine 1.
De exemplu, pentru n=6
se obține șirul: 6 3 10 5 16 8 4 2 1
, șir care are 9
termeni.
Pentru un n
dat, determinați numărul de termeni din șirul de transformări după regula de mai sus.
Date de intrare
Programul citește de la tastatură numărul n
.
Date de ieșire
Programul va afișa pe ecran numărul C
, reprezentând numărul de termeni din șirul transformărilor de mai sus.
Restricții și precizări
1 ≤ n ≤ 1 000 000
Exemplu
Intrare
6
Ieșire
9
Explicație
Exemplul corespunde șirului de mai sus.
#include <bits/stdc++.h> using namespace std; int main () { int n; cin >> n; int cnt=1; while (n!=1) { if (n%2==0) n/=2; else n=n*3+1; cnt++; } cout << cnt; return 0; }