Cerința
Se dau n
numere naturale, fie acestea A
1
, A
2
,..., A
n
și X
i
cel mai mic număr care are aceiași factori primi in descompunere ca şi A
i
, unde 1≤i≤n
. Aflați produsul X
1
* X
2
*...* X
n
.
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ât1.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
.
#include <bits/stdc++.h> using namespace std; int a[1001] , v[1001] , b[10001]; int mic(int n) { int prod = 1 , d = 2; while(n > 1) { int p = 0; while(n%d==0) p++ , n/=d; if(p > 0) prod*=d; d++; if(d * d > n) d = n; } return prod; } int main() { int n; cin >> n; for(int i = 0 ; i < n ; ++i) cin >> a[i]; for(int i = 0 ; i < n ; ++i) v[i]=mic(a[i]); b[1]=1; int c=1; for(int i=0; i<n; i++) { int t=0; for(int j=1; j<=c; j++) { int cif=b[j]*v[i]+t; b[j] = cif % 10; t=cif/10; } while(t) { b[++c]=t%10; t/=10; } } for(int i = c ; i >= 1 ; --i) cout << b[i]; return 0; }