Răspuns :
Raspunsul de jos NU ARE LOGICA! Nu te lua dupa el!
Aicie o rezolvare rapida care poate fi optimizata.Se bazeaza pe taierea cifrelor de dupa virgula radicalului.
#include<cmath>
int main(){
int n;
cin>>n;
if(sqrt(n)==(int)sqrt(n)){
cout<<"E p.p";
}else{
cout<<"NU e p.p";
}
}
Daca n e p.p atunci se poate scrie n=k*k . Deci aplicam radical din n pentru a-l lua pe K. Daca n nu e patrat perfect atunci radicalul sau va avea virgula. Asa ca doar verificam daca radicalul sau are virgula. ( (int) transforma orice numar in intreg deci ii taie virgula. Deci daca sqrt(n) este egal cu (int)sqrt(n) inseamna ca radicalul nu are virgula si deci n e p.p)
Aicie o rezolvare rapida care poate fi optimizata.Se bazeaza pe taierea cifrelor de dupa virgula radicalului.
#include<cmath>
int main(){
int n;
cin>>n;
if(sqrt(n)==(int)sqrt(n)){
cout<<"E p.p";
}else{
cout<<"NU e p.p";
}
}
Daca n e p.p atunci se poate scrie n=k*k . Deci aplicam radical din n pentru a-l lua pe K. Daca n nu e patrat perfect atunci radicalul sau va avea virgula. Asa ca doar verificam daca radicalul sau are virgula. ( (int) transforma orice numar in intreg deci ii taie virgula. Deci daca sqrt(n) este egal cu (int)sqrt(n) inseamna ca radicalul nu are virgula si deci n e p.p)
#include <iostream>
#include<cmath>
using namespace std;
int main(){ float n; cin>>n; if(sqrt(n)==(int)(sqrt(n))) cout<<"e patrat perfect"; else cout<<"nu e ";}
#include<cmath>
using namespace std;
int main(){ float n; cin>>n; if(sqrt(n)==(int)(sqrt(n))) cout<<"e patrat perfect"; else cout<<"nu e ";}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Ne dorim ca informațiile furnizate să vă fi fost utile. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, nu ezitați să ne contactați. Revenirea dumneavoastră ne bucură, iar pentru acces rapid, adăugați-ne la favorite!