# PBinfo #4333 – SumKFact1 – Rezolvare C++

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

## Enunț

Cerința
Se dă un număr k și un șir cu n elemente, numere naturale nenule. Să se determine suma elementelor șirului pentru care descompunerea în factori primi are cel puțin k factori diferiți.

Date de intrare
Programul citește de la tastatură numerele k n, apoi cele n elemente ale șirului.

Date de ieșire
Programul va afișa pe ecran numărul cerut.

Restricții și precizări

1 ≤ n ≤ 1.000
elementele șirului vor fi mai mici decât 1.000.000.000

Exemplu:
Intrare

3 5
30 23 13 40 70
Ieșire

100
Explicație
Elementele șirului cu cel puțin 3 factori primi diferiți sunt  30 70. Suma lor este 100.

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main() {
	int n , k, x;
	long long S = 0;
	cin >> k >> n;
	for(int i = 1; i <= n ; i ++)
	{
		cin >> x;
		int cx = x, d = 2 , cnt = 0;
		while(x > 1)
		{
			if(x % d == 0)
			{
				cnt ++;
				while(x % d == 0)
					x /= d;
			}
			d ++;
			if(d*d > x)
				d = x;
		}
		if(cnt >= k)
			S += cx;
	}
	cout << S << endl;
    return 0;
}
```

## Resurse

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