Wrong answer in Maximize LCM, Test case passing

#include
using namespace std;

typedef long long int ll;

int gcd(int a, int b)
{
if (b==0)
return a;
return gcd(b,a%b);
}

ll findlcm(int arr[], int n)
{
ll ans=arr[0];
for (int i=0;i<n;i++)
{
ans=((arr[i]*ans)/(gcd(arr[i],ans)));
}
return ans;
}

ll findlcm(int arr, int n)
{
ll ans=((arr*n)/(gcd(arr,n)));
return ans;
}

int main() {

int t;
cin>>t;
while (t--)
{
    int n,m;
    cin>>n>>m;
    int arr[n];
    for (int i=0;i<n;i++)
    {
        cin>>arr[i];
    }
    ll ans=findlcm(arr,n);
    ll max=0,k,brr[m];
    for (int i=1;i<=m;i++)
    {
        brr[i-1]=findlcm(ans,i);
        if (brr[i-1]>max)
        {
            max=brr[i-1];
        }
    }
    
    for(int i=0;i<m;i++)
    {
       
        if (brr[i]==max)
        {
            cout<<i+1<<endl;
            break;
        }
    }
   
    
}

return 0;

}

If you will go on computing the LCM of the entire array , the integer overflow will occur