1840 - P Max
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
<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>