Informatică, întrebare adresată de mihalexandru08, 8 ani în urmă

Scrie un program care citeşte de la tastatură un număr natural n cu cel mult 9 cifre și afişează pe ecran mesajul Da, dacă numărul citit este pătrat perfect, sau mesajul Nu, în caz contrar.​

Răspunsuri la întrebare

Răspuns de CatalinGrigoriev
4

#include <iostream>

#include <cmath>

int getInput(){

   int temp{};

   std::cout << "N = ";

   std::cin >> temp;

   return temp;

}

inline bool isPerfect(long double x){

   if (x >= 0) {

       long long sr = sqrt(x);

       return (sr * sr == x);

   }

   return false;

}

int main(){

   int n{getInput()};

   (isPerfect(n))?std::cout<<"Da":std::cout<<"Nu";

   return 0;

}

Răspuns de Sergetec
4

Salut!

Cum verificam daca un numar este patrat perfect?

  • Un numar este patrat perfect daca indeplineste conditia ca radicalul sau ridicat la patrat sa fie egal cu numarul respectiv, mai exact radicalul numarului respectiv sa fie un numar natural
  • \sqrt{n} * \sqrt{n} = n

Rezolvare in C++

#include <iostream>

#include <cmath>

using namespace std;

int main() {

   int n;

   cin >> n;

   int c = sqrt(n); //functia sqrt ne va da rezultatul radicalului numarului n

   if (c * c == n) {

       cout << "DA";

   }

   else {

       cout << "NU";

   }

   return 0;

}

Alte întrebări interesante