int are_exponent_par(int n)
{//returneaza 1 daca n are factor prim la putere para sau 0 in caz contrar
int d=2;//factorul prim
while(n>1)//descompunerea in factori primi se termina cand numarul ajunge 1
{
if(n%d==0) //daca d e factor prim
{
int e=0;//exponentul
while(n%d==0) //cat timp d e divizor
{
e++;//maresc exponentul cu 1
n=n/d;//impart n la factorul d
}
if(e%2==0) //daca e e par
return 1;//am gasit factor la putere para
}
else d++;//trec la numarul urmator
}
return 0;//nu a gasit niciun factor la putere para
}
|