1840 - P Max

De la Universitas MediaWiki

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

Exemplul 1

Input:

2

45

20

Output:

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.

Exemplul 2

Input:

999999999

45

20

Output:

Constrangeri neindeplinite

Rezolvare

def ver(n):
    if not(1<=n<=1000):
        print("Constrangeri neindeplinite")
        exit()

rez = [0] * 100002
p = [0] * 1002

rez[0] = 1
rez[1] = 1

n = int(input())
ver(n)
for k in range(1, n + 1):
    p[k] = 1
    x = int(input())
    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 i in range(1, n + 1):
    t = 0
    j = 1
    while j <= rez[0]:
        cif = t + p[i] * rez[j]
        rez[j] = cif % 10
        t = cif // 10
        j += 1
    while t:
        rez[0] += 1
        rez[rez[0]] = t % 10
        t //= 10

for i in range(rez[0], 0, -1):
    print(rez[i], end="")