# PBinfo #2547 – Divizori3 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerința
Se citesc două numere naturale a și b (a < b) având cel mult 9 cifre fiecare. Afișați câte numere din intervalul [a, b] au exact 3 divizori.

Date de intrare
Programul citește de la tastatură numerele a și b, separate printr-un spațiu.

Date de ieșire
Programul va afișa pe ecran numărul de numere din intervalul [a,b] care au exact 3 divizori.

Restricții și precizări

1 ≤ a < b < 1.000.000.000

Exemplu:
Intrare

11 50
Ieșire

2
Explicație
Numerele din intervalul [11,50] care au exact 3 divizori sunt 25 și 49.

## Cod sursă C++

```cpp
#include <iostream>
#include <math.h>
using namespace std;
int main() {
    int contor = 0, a, b;
    cin >> a >> b;
    int x = sqrt(a), y = sqrt(b);
    if (sqrt(a) != floor(sqrt(a))) x++;
    for (int i = x; i <= y; i++) {
        bool adv = true;
        if (i < 2) adv = false;
        else if (i % 2 == 0 && i > 2) adv = false;
             else for (int d = 3; d * d <= i; d = d + 2)
                        if (i % d == 0) adv = false;
        if (adv) contor++;
    } cout << contor;
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/2547)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/2547/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-2547/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
