Verificare patrat perfect

Pentru acest algoritm vom folosi descompunerea in factori primi pentru a determina daca un numar este sau nu patrat perfect.

In C++, programul arata astfel:

int n,d,p,ok;
cin>>n;
d=2;
ok=0;
while(n!=1)
{
p=0;
while(n%d==0)
{
n=n/d;
p++;
}
if(p>0&&p%2==1)ok=1;
d++;
}
if(ok==0)cout<<“patrat perfect”;
else cout<<“nu e patrat perfect”;

Obs: Un numar este patrat perfect daca in descompunearea sa toti factorii primi sunt la putere para.

Leave a comment