fork download
  1. #include<iostream>
  2. #include<cmath>
  3. #include<algorithm>
  4. #include<vector>
  5. #define mod 1000000007
  6. using namespace std;
  7. vector<long long int>v;
  8. long long int power(long long int m)
  9. {
  10. long long int total=m%mod;
  11. total=(total*m)%mod;
  12. total=(total*m)%mod;
  13. return total;
  14. }
  15. void factorise( long long int n)
  16. {
  17. int counte=0;
  18. while (n%2 == 0)
  19. {
  20. n = n/2;
  21. counte++;
  22. }
  23. if(counte>0)
  24. v.push_back(2);
  25. for (int i = 3; i <= sqrt(n); i = i+2)
  26. {
  27. int counter=0;
  28. while (n%i == 0)
  29. {
  30. counter++;
  31. n = n/i;
  32. }
  33. if(counter>0)
  34. v.push_back(i);
  35. }
  36. if (n > 2)
  37. v.push_back(n);
  38. }
  39. int main()
  40. {
  41. int t;
  42. cin>>t;
  43. while(t--)
  44. {
  45. long long int N;
  46. cin>>N;
  47. for(int i=0;i<N;i++)
  48. {
  49. long long int x;
  50. cin>>x;
  51. factorise(x);
  52. }
  53. sort(v.begin(),v.end());
  54. int g=v.size();
  55. long long int finali=1;
  56. finali=finali*power(v[0]);
  57. for(int i=1;i<g;i++)
  58. {
  59. if(v[i]!=v[i-1])
  60. finali=(finali*power(v[i])) % mod;
  61. }
  62. cout<<finali<<"\n";
  63. }
  64. }
Runtime error #stdin #stdout 0s 3100KB
stdin
Standard input is empty
stdout
Standard output is empty