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

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 de Mihai2628
0

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 de boiustef
0

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

Alte întrebări interesante