关于lcm的问题
#include <bits/stdc++.h>
using namespace std;
int lcm(int a,int b)
{
return (a*b)/__gcd(a,b);
}
int main(void)
{
int n;
cin>>n;
int a[n];
for(int i=1;i<=n;i++)
cin>>a[i];
int x;
cin>>x;
int res=1;
for(int i=n;i>=1;i--)
{
if(x%a[i]==0)
{
res=lcm(res,a[i]);
}
}
if(res%x==0)
cout<<"Possible";
else
cout<<"Impossible";
return 0;
} 我想问一下 (a*b)/__gcd(a,b)和a/__gcd(a,b)*b有什么区别,为什么a/__gcd(a,b)*b会对,而(a*b)/__gcd(a,b)只能部分正确呢

