# PBinfo #268 – DivK – Rezolvare C++

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

## Enunț

Cerinţa
Se dau n numere  naturale şi un număr natural k. Afişaţi acele numere date care au cel puţin k divizori.

Date de intrare
Fişierul de intrare divk.in conţine pe prima linie numerele n şi k, iar pe a doua linie n numere naturale separate prin spaţii.

Date de ieşire
Fişierul de ieşire divk.out va conţine pe prima linie numerele care au cel puţin k divizori, separate printr-un spaţiu, în ordinea în care au fost citite.

Restricţii şi precizări

1 ≤ n ≤ 100
numerele de pe a doua linie a fişierului de intrare, precum şi k vor avea cel mult 9 cifre

Exemplu:
divk.in

6 5
100 9 400 56 7 10
divk.out

100 400 56

## Cod sursă C++

```cpp
#include <iostream>
#include <fstream>
#include <cassert>
using namespace std;
ifstream fin("divk.in");
ofstream fout("divk.out");
int n,k,x;
int main(){
	fin >> n >> k;
	for( ; n ; --n){
		assert(fin >> x);
		int s = 0, d;
		for(d=1; d*d < x ;d++)
			if(x%d==0)
				s +=2;
		if(d*d==x)
			s ++;
		if(s >= k)
			fout << x << " ";
	}
	return 0;
}
```

## Resurse

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