JavaScript (SpiderMonkey), 69 bytes
a=>a.map((q,i)=>a.map(l=(p,j)=>a[j]=j>i&&(t=p%q)?p/t*l(q,j,q=t):p)|q)
- Function
lassignlcm(p,q)toa[j], and assigngcd(p, q)toqifj > i, otherwise keeps everything unchanged.lcm(p,q) = if p%q=0 then p else p*lcm(q,p%q)/(p%q)
Old answer:
JavaScript (SpiderMonkey) , 73 bytes
a=>a.map((u,i)=>a.map((v,j)=>i<j?a[j]*=u/(g=p=>p%u?g(u,u=p%u):u)(v):0)|u)
- Function
gcalculategcd(u, v)and assign return value tou.
JavaScript (SpiderMonkey), 73 bytes
a=>a.map((u,i)=>a.map((v,j)=>i<j?a[j]*=u/(g=p=>p%u?g(u,u=p%u):u)(v):0)|u)
JavaScript (SpiderMonkey), 69 bytes
a=>a.map((q,i)=>a.map(l=(p,j)=>a[j]=j>i&&(t=p%q)?p/t*l(q,j,q=t):p)|q)
- Function
lassignlcm(p,q)toa[j], and assigngcd(p, q)toqifj > i, otherwise keeps everything unchanged.lcm(p,q) = if p%q=0 then p else p*lcm(q,p%q)/(p%q)
Old answer:
JavaScript (SpiderMonkey) , 73 bytes
a=>a.map((u,i)=>a.map((v,j)=>i<j?a[j]*=u/(g=p=>p%u?g(u,u=p%u):u)(v):0)|u)
- Function
gcalculategcd(u, v)and assign return value tou.
JavaScript (SpiderMonkey), 73 bytes
a=>a.map((u,i)=>a.map((v,j)=>i<j?a[j]*=u/(g=p=>p%u?g(u,u=p%u):u)(v):0)|u)