# PBinfo #664 – nrperechi – Rezolvare C++

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

## Enunț

Cerința
Gigel a învăţat la matematică despre cel mai mic multiplu comun a două numere şi acum trebuie să determine pentru fiecare valoare x dintr-un set de valori date câte perechi ordonate de numere naturale (a,b) au cel mai mic multiplu comun x.

Date de intrare
Programul citește de la tastatură număr n, apoi n valori x.

Date de ieșire
Programul va afișa pe ecran n valori, separate prin exact un spaţiu; fiecare valoare afișată reprezintă numărul de perechi care au cel mai mic multiplu comun egal cu valoarea x corespunzătoare.

Restricții și precizări

1 ≤ n ≤ 1.000
1 ≤ x ≤ 2.000.000.000

Exemplu:
Intrare

2
12 4
Ieșire

15 5
Explicație
Cele  15 perechi pentru care cel mai mic multiplu comun este 12 sunt: (1,12), (2,12), (3,4), (3,12), (4,3), (4,6), (4,12), (6,4), (6,12), (12,1), (12,2), (12,3), (12,4), (12,6), (12,12).

## Cod sursă C++

```cpp
#include <iostream>
#include <math.h>
using namespace std;
int main() {
    int n, temp;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> temp;
        int perechi = 1, nr = 2;
        while (temp > 1) {
            if (temp % nr == 0) {
                int val = 0;
                while (temp % nr== 0)
                    val++, temp = temp / nr;
                perechi = perechi * (2 * val + 1);
            } else nr++;
            if (temp > 1 && nr * nr > temp) {
                perechi = perechi * 3;
                break;
            }
        } cout << perechi << " ";
    } return 0;
}
```

## Resurse

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