# PBinfo #4296 – SumDiv – Rezolvare C++

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

## Enunț

Cerința
Se dă un șir de n numere naturale nenule și de asemenea un număr natural p. Să se calculeze suma numerelor din șir care au cel puțin p divizori.

Date de intrare
Programul citește de la tastatură numerele n și p, iar apoi șirul de n numere naturale, separate prin spații.

Date de ieșire
Programul va afișa pe ecran numărul S, reprezentând suma numerelor din șir care au cel puțin p divizori.

Restricții și precizări

1 ≤ n ≤ 1000
1 ≤ p ≤ 1000
cele n numere din șir vor fi numere naturale nenule mai mici decât 1.000.000

Exemplul 1:
Intrare

5 3
7 4 10 17 1
Ieșire

14
Explicație
Numerele din șir care au cel puțin 3 divizori sunt 4 și 10, iar suma lor este 14.

Exemplul 2:
Intrare

5 100
5 12 24 3 72
Ieșire

0
Explicație
Niciun număr nu are cel puțin 100 de divizori, deci suma este 0.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int NrDiv(int n)
{
    int i, nr = 0;
    for (i = 1; i * i < n; i++)
        if (n % i == 0) nr += 2;
    if (i * i == n) nr++;
    return nr;
}
int main()
{
    int n, i, x, p, s = 0;
    cin >> n >> p;
    for (i = 1; i <= n; i++)
    {
        cin >> x;
        if (NrDiv(x) >= p) s += x;
    }
    cout << s;
    return 0;
}
```

## Resurse

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