fork download
  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. int gcd(int u, int v) {
  5. if(u==v) return u;
  6. if(u==0) return v;
  7. if(v==0) return u;
  8. if(~u&1) {
  9. if(v&1) return gcd(u>>1, v);
  10. return gcd(u>>1, v>>1)<<1;
  11. }
  12. if(~v&1) return gcd(u, v>>1);
  13. if(u>v) return gcd((u-v)>>1, v);
  14. return gcd((v-u)>>1, u);
  15. }
  16.  
  17. int lcm(int u, int v) {
  18. return u*v/gcd(u, v);
  19. }
  20.  
  21. int main() {
  22. int t, n, a[1005], b[1005];
  23. scanf("%d", &t);
  24. while(t--) {
  25. scanf("%d", &n);
  26. for(int i=0; i<n; i++) scanf("%d", &a[i]);
  27. b[0]=a[0];
  28. for(int i=1; i<n; i++) b[i]=lcm(a[i-1], a[i]);
  29. b[n]=a[n-1];
  30. for(int i=0; i<=n; i++) printf("%d ", b[i]);
  31. printf("\n");
  32. }
  33. return 0;
  34. }
Success #stdin #stdout 0s 3344KB
stdin
2
3
1 2 3
3
5 10 5
stdout
1 2 6 3 
5 10 10 5