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

Se citesc două numere naturale a și b (a mai mic decât b) având cel mult 9 cifre fiecare. Afișați câte numere din intervalul [a,b] au exact 3 divizori.Exemplu:În intervalul [11,50] numerele care au exact 3 divizori sunt 25 și 49, deci se va afișa 2.

program în C++​

Răspunsuri la întrebare

Răspuns de Maciu19
1

#include <iostream>

using namespace std;

int nr_de_divizori(int n)

{

   int d, nr = 0;

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

   {

       if(n % d == 0)

       {

           nr++;

           if(d * d < n)

               nr++;

       }

       if(nr > 3)

           break;

   }

   if(nr == 3)

       return 1;

   else

       return 0;

}

int main()

{

   int a,b,div = 0;

   cin >> a >> b;

   for(int i = a ; i <= b; i++)

   {

       div += nr_de_divizori(i);

   }

   cout << div;

   return 0;

}

Alte întrebări interesante