WA in MXMLCM

#include <stdio.h>

int gcd(int a,int b)
{

if(b!= 0 )
    return gcd(b,a%b);
    
else return a;

}

int main(void) {
int t;
int n,m;
char c;
scanf("%d",&t);
c = getchar();
for(int i = 0; i<t ; i++)
{
int ans = 1;
scanf("%d",&n);
c = getchar();
scanf("%d",&m);
c = getchar();
int arr[n];
for(int i = 0 ; i<n ; i++)
{
scanf("%d",&arr[i]);
c = getchar();
ans = ((arr[i]*ans)/(gcd(arr[i],ans)));
}

    int max = ans;
    int ans2 = ans;
    int i = 1;
    for(int j = 2 ; j<=m ; j++)
    {
        ans2 = (j*ans2)/gcd(j,ans2);
        if(ans2>max)
        {
            i = j;
            max = ans2;
        }
       ans2 = ans;
    }
    printf("%d\n",i);
    
}
return 0;

}

I don’t understand which cases this answer is failing for?

Your ans is overflowing for large numbers

You can use prime factors technique to solve this problem.