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

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

Date de intrare
Programul citește de la tastatură numărul natural n.

Date de ieşire
Programul afișează pe ecran mesajul da, dacă n este pătrat perfect, respectiv nu în caz contrar.

Restricţii şi precizări
n < 2.000.000.000

Răspunsuri la întrebare

Răspuns de lucaciucandrei
4

varianata cu sqrt din libraria <cmath>

#include <iostream>  

#include <cmath>  

using namespace std;

int main() {

   int n;

   cin >> n;

   if ((int) sqrt(n) == sqrt(n))

       cout << "da";

   else

       cout << "nu";

   return 0;

}

varianta fara sqrt

#include<iostream>  

using namespace std;

int main() {

   int n;

   float x = 0, sqrt;

   cin >> n;

   sqrt = n / 2;

   while (sqrt != x) {

       x = sqrt;

       sqrt = (n / x + x) / 2;

   }

   if (sqrt == (int) sqrt)

       cout << "da";

   else

       cout << "nu";

}

Răspuns de andrei750238
5

Program C++

#include <iostream>

#include <math.h>

using namespace std;

int main(){

//Declarare variabile

   int n,radacina;

//Citere numar

   cin>>n;

//Calculare radacina patrata (partea intreaga)

radacina=sqrt(n);

//Verificare

   if(radacina*radacina==n){

       cout<<"da";

   }else{

       cout<<"nu";

   }

}

Explicatie

Variabila "radacina" memoreaza un numar intreg. Atribuind acestei variabile valoarea sqrt(n) aceasta va memora partea intreaga a lui radical din n.

Un numar este patrat perfect daca si numai daca [\sqrt{n} ]^{2} = n

Anexe:

lucaciucandrei: vezi ca da 0 puncte pe pbinfo daca scrii da sau nu cu litere mari :( frumos explicat, se putea si mai in detaliu
andrei750238: vezi ca doar in imagine e cu litere mari, codul atasat nu este.
lucaciucandrei: da am obs, sorry
Alte întrebări interesante