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="")