fbpx

Problema #664 – NrPerechi – Rezolvari PBInfo

de Mihai-Alexandru

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).

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n , x;
    cin >> n;
    for(int i = 0 ; i < n ; ++i)
    {
        cin >> x;
        int d = 2;
        int p = 1;
        while(x > 1)
        {
            if(x % d == 0)
            {
                int e = 0;
                while(x % d == 0)
                    e++ , x/=d;
                p*=(2 * e + 1);
            }
            else d++;
            if(x > 1 && d*d>x)
            {
                p*=3;
                break;
            }
        }
        cout << p << ' ';
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa