391
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;
}
Comentarii