fork(1) download
  1. #include <iostream>
  2. #include <stdio.h>
  3. typedef unsigned long long ull;
  4. using namespace std;
  5. ull nwd(ull a,ull b)
  6. {
  7. int c;
  8. while(b != 0)
  9. {
  10. c = a % b;
  11. a = b;
  12. b = c;
  13. }
  14. return a;
  15. }
  16. ull NWW(ull*tab, int ostatni)
  17. {
  18. int n=ostatni;
  19. for(int p=n; p>=1; p--)
  20. {
  21. int przed=ostatni-1;
  22. tab[przed]=(tab[przed]/nwd(tab[przed],tab[ostatni]))*tab[ostatni];
  23. ostatni--;
  24. }
  25. return tab[0];
  26. }
  27. int main()
  28. {
  29. int test;
  30. cin>>test;
  31. //scanf("%d",&test);
  32. for(int t=0; t<test; t++)
  33. {
  34.  
  35. ull *tablica;
  36. int ile;
  37. cin>>ile;
  38. //scanf("%d",&ile);
  39. tablica=new ull [ile];
  40. for(int i=0; i<ile; i++)
  41. {
  42. cin>>tablica[i];
  43. //scanf("%d",&tablica[i]);
  44. }
  45.  
  46. //printf("%d ",NWW(tablica,ile-1));
  47. cout<<NWW(tablica,ile-1)<<endl;
  48. delete [] tablica;
  49. }
  50. return 0;
  51. }
  52.  
  53.  
Success #stdin #stdout 0s 3472KB
stdin
4
2 3 5
3
6 9 15
2
100000000000000000
100000000000000000
2
18446744073709552000
18446744073709552000
stdout
15
90
100000000000000000
18346744073709551616