Algoritm de verificare daca un numar este patrat perfect
-
Ce este si ce face acest algoritm?
Acest algoritm este unul dintre algoritmii elementari. Acesta verifica daca un numar este patrat perfect.
Definitia unui patrat perfect: In matematica, un patrat perfect este un numar intreg (Z) care este patratul altui numar intreg.
Exemplu: 4 este patrat perfect, deoarece poate fi scris ca si 2 * 2.
-
Algoritmul pentru verificarea unui patrat perfect
Inainte de a prezenta algoritmul, trebuie sa discutam putin despre functia sqrt().
Ce este sqrt()? Aceasta functie extrage radacina patrata a unui numar si o returneaza sub forma unui numar real. Daca scriem sqrt(5) o sa obtinem 2.23607. Iar daca executam sqrt(4) vom obtine 2.
Mai multe despre functia sqrt() puteti gasii aici.
#include <iostream>
#include <cmath>
using namespace std;
bool ePatrat(int numar)
{
if((int)sqrt(numar) == sqrt(numar))
return true;
return false;
}
int main()
{
int an;
cin >> an;
cout << ePatrat(an);
return 0;
}
Algoritmul este destul de simplu: verificam daca radacina numarului nostru este egala cu partea intreaga a radacinii.
De exemplu, daca scriem sqrt(5), partea intreaga a radacinii este 2. Iar 2 nu este egal cu 2.23607 (radacina reala). In schimb, daca scriem sqrt(4), partea intreaga (2) este egala cu partea reala (2).