1840 - P Max
Cerința[edit | edit source]
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[edit | edit source]
Programul citește de la tastatură numărul n
, iar apoi n
numere naturale, separate prin spații.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran numărul P
, reprezentand numărul cerut.
Restricții și precizări[edit | edit source]
1 ≤ n ≤ 1000
Exemplul 1[edit | edit source]
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[edit | edit source]
Input:
999999999
45
20
Output:
Constrangeri neindeplinite
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> 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="")
</syntaxhighlight>