Răspuns :
Iti ofer o solutie in C++ la problema ceruta.Analizeaz-o pas cu pas si ai sa vezi unde gresesti. O prima gresala in sursa ta e ca nu calculezi corect numarul divizorilor. Succes!
void nr_div_imp(int nr, int &s)
{
int d, p = 0;
for(d = 1; d * d < nr; d ++)
if(nr % d == 0)
{
if(d % 2 == 1)
p ++;
if(nr / d % 2 == 1)
p ++;
}
if(d * d == nr)
if(d % 2 == 1)
p ++;
s = p;
return;
}
void nr_div_imp(int nr, int &s)
{
int d, p = 0;
for(d = 1; d * d < nr; d ++)
if(nr % d == 0)
{
if(d % 2 == 1)
p ++;
if(nr / d % 2 == 1)
p ++;
}
if(d * d == nr)
if(d % 2 == 1)
p ++;
s = p;
return;
}
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Așteptăm cu nerăbdare să vă revedem și nu uitați să ne salvați în lista de favorite!