De ce primesc doar 90 de puncte?
#178 PatratPerfect de pe PbInfo
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


#include
#include

using namespace std;

int main()
{
float n;
cin>>n;
if (sqrt(n)==(int)sqrt(n))
cout<<"da";
else
cout<<"nu";
return 0;
}

Răspuns :

in loc de (int)sqrt(n) pune (long)sqrt(n) pentru ca nr este destul de mare

daca tot nu primesti punctaj maxim poti pune conditia:

if(sqrt(n)*sqrt(n)==floor(n))cout<<"da";

Răspuns:

#include<cmath>

#include <iostream>

using namespace std;

int main(){

int n;

cin>>n;

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

   cout<<"da";

else

   cout<<"nu";

}

Explicație: