# PBinfo #1981 – divizorisir – Rezolvare C++

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

## Enunț

Cerința
Se dă următorul șir de numere naturale:

1, 3, 9, 25, 65, 161, 385, 897, 2049, 4609, 10241, 22529, 49153, 106497…

Pentru un număr natural n, citit de la tastatură, afișati numărul de divizori pentru fiecare dintre primii n termeni ai șirului.  

Date de intrare
Programul citește de la tastatură numărul n;

Date de ieșire
Programul va afișa pe ecran cele n numere, reprezentând numărul de divizori ai fiecarui numar dintre cele n, separate prin spații.

Restricții și precizări

0 < n < 60

Exemplu:
Intrare

4
Ieșire

1 2 3 3
Explicație

1 are un divizor,
3 are 2 divizori,
9 are 3 divizori,
25 are 3 divizori.

## Cod sursă C++

```cpp
#include <bits/stdc++.h>
using namespace std;
int main() {
    unsigned long long int n, valsir, temp, val, nrdiv;
	cin >> n;
	for (int i = 0; i < n; i++) {
        nrdiv = 1; val = 2;
		valsir = i * pow(2, i) + 1;
		while (valsir > 1) {
			temp = 0;
			while (valsir % val == 0) {
				temp++;
				valsir = valsir / val;
			} nrdiv = nrdiv * (temp + 1);
			val++;
			if (valsir > 1 && val * val > valsir) val = valsir;
		} cout << nrdiv << " "; 
	} return 0;
}
```

## Resurse

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