Să se scrie un program care verifică dacă un număr natural citit de la tastatură este pătrat perfect.

Răspuns :

#include <iostream>
#include <math.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    if((int)sqrt(n)==(float)sqrt(n)){
        cout<<"DA";
    }else{
        cout<<"NU";
    }
    return 0;
}
Varianta mai rapida (prob) si FARA SQRT DIN CMATH

#include <iostream>
using namespace std;

int main()
{
    int n, i, p;

    cin >> n;
    for(p = 1; p * p <= n; p <<= 1);
    p >>= 1;

    if(p * p == n) {
        cout << "DA\n";
        return 0;
    }
    else {
        for(i=p; p; p >>= 1)
            if ((i + p) * (i + p) <= n)
                i += p;
    }

    if(i * i == n) cout << "DA\n";
    else cout << "NU!\n";
    return 0;
}

Vă mulțumim pentru vizita pe platforma noastră dedicată Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Așteptăm cu entuziasm să reveniți și vă invităm să ne adăugați la lista de favorite!


Viz Lesson: Alte intrebari