Rezolvare completă PbInfo #1840 PMax

Cerința

Se dau n numere naturale, fie acestea A1, A2,..., An și Xi cel mai mic număr care are aceiași factori primi in descompunere ca şi Ai, unde 1≤i≤n. Aflați produsul X1 * X2 *...* Xn.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.

Date de ieșire

Programul va afișa pe ecran numărul P, reprezentand numărul cerut.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu

Intrare

2
45 20

Ieșire

150

Explicație

45 = 5 * 3 * 3, 20 = 2 * 2 * 5. Cel mai mic număr care are factorii 3 și 5 in descompunere este 15, iar cu factorii 2 și 5 este 10.
15 * 10 = 150.

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema PMax :

///Moca Andrei - 100p

#include <iostream>
using namespace std;
int rez[100002], p[1002], n, x;
int main()
{
    rez[0] = 1;
    rez[1] = 1;
    cin >> n;
    for (int k = 1; k <= n; k++)
    {
        p[k] = 1;
        cin >> x;
        int d = 2;
        while (x != 1)
        {
            if (x % d == 0)
                p[k] *= d;
            while (x % d == 0)
                x /= d;
            if (d == 2) d = 3;
            else d += 2;
            if (d * d > x) d = x;
        }
    }
    for(int i = 1 ; i <= n ; ++i)
    {
        int t = 0;
        for(int j = 1 ; j <= rez[0] ; j++)
        {
            int cif = t + p[i] * rez[j];
            rez[j] = cif % 10;
            t = cif / 10;
        }
        while(t)
            rez[++rez[0]] = t % 10, t /= 10;
    }
    for(int i = rez[0] ; i > 0 ; i--)
        cout << rez[i];
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #1840 PMax

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1840 PMax de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!