Să se scrie o funcție C++ care să determine numărul divizorilor impari ai unui număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de ieşire.
Restricţii şi precizări
-numele funcției va fi nr_div_imp
-funcția va avea doi parametri, reprezentând numărul pentru care se calculează numarul divizorilor impari, respectiv valoarea calculată
-numărul pentru care se calculează numărul divizorilor impari va fi mai mare decât 1 și mai mic decât 2.000.000.000
/// #114
Mie imi da 0 pe solutia aceasta, de ce?
void nr_div_imp(int n , int &k)
{
k = 0;
for(int d = 1; d<=n/2; d+=2)
{
if( n % d == 0 )
{
k++;
}
}
}
Răspunsuri la întrebare
Răspuns de
14
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;
}
nataliaachashiro:
Multumesc!
Alte întrebări interesante
Matematică,
9 ani în urmă
Biologie,
9 ani în urmă
Chimie,
9 ani în urmă
Limba română,
9 ani în urmă
Engleza,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă