# PBinfo #2345 – magic3 – Rezolvare C++

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

## Enunț

În ajunul Crăciunului la marele mall din Acropole s-a organizat o tombolă la care au participat n persoane. Acestea au extras pe rând câte un număr, iar câștigători au fost cei care au extras numerele magice. Un număr este magic dacă numărul său de divizori este minim. 

Cerința
Câți câștigatori au existat?

Date de intrare
Fişierul de intrare magic3.in conţine pe prima linie variabila n cu indicația din enunț, iar pe a doua linie cele n numere naturale v[1],v[2],...,v[n] , separate prin câte un spațiu, reprezentând numerele extrase la tombolă.

Date de ieșire
Fişierul de ieşire magic3.out conţine o singură valoare care reprezintă numărul de câștigatori.

Restricții și precizări

1 ≤ n ≤ 1.000
0 < v[i] ≤ 1.000.000.000
Numerele se pot repeta în această tombolă

Exemplu:
magic3.in

8 
12 5 10 7 32 2 4 99
magic3.out

3
Explicație
Numărul minim de divizori este 2. Și avem 3 numere care au doar 2 divizori.

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
ifstream in("magic3.in");
ofstream out("magic3.out");
int nrdiv(int n) {
    int temp = 1, d = 2;
    while(n > 1) {
        int p = 0;
        while (n % d == 0)
            p++, n = n / d;
        if (p != 0) temp = temp * (p + 1);
        d++;
        if (d * d > n) d = n;
    } return temp;
} int main() {
    int n, v[1005], var = 0, minim = 1000000000;
    in >> n;
    for (int i = 1; i <= n; i++) {
        in >> v[i];
        if (nrdiv(v[i]) < minim) minim = nrdiv(v[i]);
    } for (int i = 1; i <= n; i++) {
        if (nrdiv(v[i]) == minim)
            var++;
    } out << var;
    return 0;
}
```

## Resurse

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