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

Se citesc de la tastatură numere naturale până la întâlnirea unui număr care are exact 4 divizori. Să se afișeze pe ecran câte din numerele citite sunt prime.

Răspunsuri la întrebare

Răspuns de boiustef
0

Răspuns:

#include <iostream>

using namespace std;

int num, nrPrime;

bool prim(int x)

{

   if (x<2) return false;

   if (x==2) return true;

   if (x%2==0) return false;

   for (int d=3; d*d<=x; d+=2)

       if (x%d==0) return false;

   return true;

}

int nrDiv(int x)

{

   int s=0, d;

   for (d=1; d*d<x; ++d)

       if (x%d==0) s+=2;

   if (d*d==x) s+=1;

   return s;

}

int main()

{

   cin >> num;

   while (nrDiv(num)!=4)

   {

       if (prim(num)) ++nrPrime;

       cin >> num;

   }

   cout << nrPrime << " numere sunt prime";

}

Explicație:

Alte întrebări interesante