Cerința
Trebuie să definiți trei funcții având următoarele antete:
int NrDiv(int n) int NextNrDiv(int n) int PrevNrDiv(int n)
Funcția NrDiv
primește ca parametru un număr natural n
și returnează numărul divizorilor lui n
Exemplu
NrDiv(100) = 9
, NextNrDiv(100) = 196
, PrevNrDiv(100) = 36
Important
Rezolvarea voastră trebuie să conţină definiţiile celor trei funcţii. Prezenţa în soluţie a altor instrucţiuni sau lipsa definiției vreunei funcții poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
int NrDiv(int n) { int cnt=0; for(int i = 1 ; i * i <= n ; ++i) { if(n % i == 0) cnt+=2; if(i * i == n) cnt--; } return cnt; } int NextNrDiv(int n) { for(int i = n + 1 ; i ; ++i) if(NrDiv(i)==NrDiv(n)) return i; } int PrevNrDiv(int n) { for(int i = n - 1 ; i >= 1 ; --i) if(NrDiv(i)==NrDiv(n)) return i; return -1; }