Sa se scrie un program care citeste numere intregi pana la intalnirea lui 0 si care determina cate dintre aceste numere sunt numere perfecte
Repede, va rog!!
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <math.h>
using namespace std;
int main (){
int x;
cin>>x;
while (x!=0){
cin>>x;
if (int(sqrt(x))==sqrt(x))
cout<<x<<" ";
}
return 0;
}
Explicație:
Conditia e ca radicalul numarului citit sa fie de tip intreg.
Răspuns:
#include <iostream>
using namespace std;
int x, contor;
bool perfect(int num)
{
int s=1,d;
for (d=2; d*d<num; ++d)
{
if (num%d==0)
{
s=s+d+num/d;
}
}
return s==num;
}
int main()
{
cout << "Introdu numere naturale, (STOP este 0 !) " << endl;
cin >> x;
if (x==0) cout << "opss... sir vid...";
else
{
while (x)
{
if (perfect(x)) ++contor;
cin >> x;
}
cout << "Sirul numeric contine "<<contor<< " numere perfecte ";
}
return 0;
}
Explicație:
Un număr perfect este acel număr întreg egal cu suma divizorilor săi, exceptând numărul însuși, desigur.
6 este număr perfect, deoarece 6=1+2+3