#include<iostream>
unsigned long long int nwd(unsigned long long int a, unsigned long long int b){
if(a == b || a == 0 || b == 0)
return a|b;
if(a%2 == 0){
if(b%2 == 0)
return (2*nwd(a/2, b/2));
else
return nwd(a/2, b);
}
else if(b%2 == 0)
return nwd(a, b/2);
else{
if(a > b)
return nwd((a-b)/2, b);
else
return nwd((b-a)/2, a);
}
}
unsigned long long int nww(unsigned long long int a, unsigned long long int b){
return(a/nwd(a,b)*b);
}
unsigned long long int nww(unsigned long long int a, unsigned long long int b);
int main(){
using namespace std;
int n, t;
cin>>t;
for(int i=0; i<=t-1; i++){ //liczba testow
unsigned long long int nww2=0;
cin>>n;
unsigned long long int a[n];
for(int j=0; j<=n-1; j++){cin>>a[j];}//podawanie n liczb
//obliczanie nww z 2 liczb, cyklicznie
nww2=a[0];
for(int k=1; k<=n-1; k++){ nww2=nww(nww2,a[k]);}
cout<<nww2<<endl;
}
return 0;
}
Ten kod działa. Dzięki wam za pomoc. Temat można zamknąć.