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).