fork download
  1. #include <bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp>
  3. using namespace __gnu_pbds;
  4. #define FAST ios::sync_with_stdio(0), cin.tie(0),cout.tie(0)
  5. #define ll long long
  6. #define ld long double
  7. #define int long long
  8. #define endl "\n"
  9. #define yes cout<<"YES"<<endl;
  10. #define no cout<<"NO"<<endl;
  11. #define pb push_back
  12. //#pragma GCC optimize("O3,unroll-loops")
  13. //#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
  14. using namespace std;
  15. const int MOD = 1e9+7 ;
  16. //const int MOD = 998244353 ;
  17. const int N = 2e5+5 ;
  18. const ll INF = 1e18 ;
  19. const ll MIN = -1e18 ;
  20. typedef tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> indexed_set;
  21.  
  22. vector<ll> spf(N,INF);
  23.  
  24. void gen(){
  25. for(int i=2;i<N;i++){
  26. if(spf[i]==INF){
  27. for(int j=i;j<N;j+=i){
  28. spf[j]=min(spf[j],i);
  29. }
  30. }
  31. }
  32. }
  33.  
  34. void solve() {
  35. int n;cin>>n;
  36. vector<ll> a(n);
  37. map<ll,vector<ll>> mp;
  38. for(int i=0;i<n;i++){
  39. cin>>a[i];
  40. while(a[i]!=1){
  41. ll res=1;
  42. ll d=spf[a[i]];
  43. while(a[i]%d==0){
  44. res*=d;
  45. a[i]/=d;
  46. }
  47. mp[d].pb(res);
  48. }
  49. }
  50. ll ans=1;
  51. for(auto [x,v]: mp){
  52. std::sort(v.begin(), v.end());
  53. if(v.size()==n-1){
  54. ans=ans*v[0];
  55. }
  56. if(v.size()==n){
  57. ans=ans*v[1];
  58. }
  59. }
  60. cout<<ans<<endl;
  61. }
  62.  
  63. signed main() {
  64. FAST;
  65. auto begin = std::chrono::high_resolution_clock::now();
  66. #ifndef ONLINE_JUDGE
  67. freopen("input.txt","r",stdin);
  68. freopen("output.txt","w",stdout);
  69. #endif
  70. ll t=1;
  71. //cin>>t;
  72. gen();
  73. while(t--) solve();
  74. #ifndef ONLINE_JUDGE
  75. auto end = std::chrono::high_resolution_clock::now();
  76. cout << setprecision(4) << fixed;
  77. cout << "Execution time: " << std::chrono::duration_cast<std::chrono::duration<double>>(end - begin).count() << " seconds" << endl;
  78. #endif
  79. }
  80.  
  81.  
  82.  
Success #stdin #stdout 0.01s 5292KB
stdin
Standard input is empty
stdout
1