#include<bits/stdc++.h>
#define ll long long
#define fast ios_base::sync_with_stdio(0),cin.tie(0);
using namespace std;
const ll N=1e5,M=1e6+5;
vector<ll> g[N+5];
map<ll,map<ll,ll>> d;
ll st[N+5],timedfs=0,en[N+5],c[N+5],a[N+5];
void dfs(ll u,ll pre){
st[u]=++timedfs;
c[st[u]]=u;
for(int v:g[u]){
if(v==pre) continue;
dfs(v,u);
}
en[u]=timedfs;
}
ll snt[N+5];
void ok(){
for(int i=1;i<=N;i++)
snt[i]=i;
for(int i=2;i<=N;i++)
if(snt[i]==i)
for(int j=2*i;j<=N;j+=i)
if(snt[j]==j) snt[j]=i;
}
ll siu[N+5];
int main(){
fast
ll n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<n;i++){
ll u,v;
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
dfs(1,0);
for(int i=1;i<=n;i++)
g[i].clear();
set<ll> s;
ok();
for(int i=1;i<=n;i++){
s.clear();
ll u1=c[i];
ll u=a[u1];
while(u>1){
s.insert(snt[u]);
u/=snt[u];
}
for(auto x:s)
g[u1].push_back(x);
}
for(int i=1;i<=n;i++){
d[i]=d[i-1];
ll u=c[i];
ll m=g[u].size();
for(int mask=0;mask<(1<<m);mask++){
ll d1=1;
for(int j=0;j<m;j++)
if(mask>>j&1) d1*=g[u][j];
d[i][d1]++;
}
}
for(int i=1;i<=n;i++){
ll u=c[i];
//cout<<u<<" ";
ll x=st[u],y=en[u];
ll m=g[u].size();
ll res=0;
for(int mask=0;mask<(1<<m);mask++){
ll d1=1,cnt=0;
for(int j=0;j<m;j++)
if(mask>>j&1) d1*=g[u][j],cnt++;
if(cnt%2==0) res+=d[y][d1]-d[x-1][d1];
else res-=d[y][d1]-d[x-1][d1];
}
siu[u]=res;
}
for(int i=1;i<=n;i++)
cout<<siu[i]<<" ";
return 0;
}
/*
5
66 15 5 7 11
1 2
2 3
2 4
1 5
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBmYXN0IGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCksY2luLnRpZSgwKTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbGwgTj0xZTUsTT0xZTYrNTsKCnZlY3RvcjxsbD4gZ1tOKzVdOwoKbWFwPGxsLG1hcDxsbCxsbD4+IGQ7CmxsIHN0W04rNV0sdGltZWRmcz0wLGVuW04rNV0sY1tOKzVdLGFbTis1XTsKCnZvaWQgZGZzKGxsIHUsbGwgcHJlKXsKICAgIHN0W3VdPSsrdGltZWRmczsKICAgY1tzdFt1XV09dTsKCiBmb3IoaW50IHY6Z1t1XSl7CiAgICBpZih2PT1wcmUpIGNvbnRpbnVlOwogICAgZGZzKHYsdSk7CiB9CiBlblt1XT10aW1lZGZzOwp9CmxsIHNudFtOKzVdOwoKdm9pZCBvaygpewogIGZvcihpbnQgaT0xO2k8PU47aSsrKQogICAgc250W2ldPWk7CgogIGZvcihpbnQgaT0yO2k8PU47aSsrKQogICBpZihzbnRbaV09PWkpCiAgICBmb3IoaW50IGo9MippO2o8PU47ais9aSkKICAgICAgICBpZihzbnRbal09PWopIHNudFtqXT1pOwoKfQpsbCBzaXVbTis1XTsKCmludCBtYWluKCl7CmZhc3QKbGwgbjsKY2luPj5uOwpmb3IoaW50IGk9MTtpPD1uO2krKykKICAgIGNpbj4+YVtpXTsKCmZvcihpbnQgaT0xO2k8bjtpKyspewogICAgbGwgdSx2OwogICAgY2luPj51Pj52OwogICAgZ1t1XS5wdXNoX2JhY2sodik7CiAgICBnW3ZdLnB1c2hfYmFjayh1KTsKfQogIGRmcygxLDApOwogZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICBnW2ldLmNsZWFyKCk7CgogIHNldDxsbD4gczsKICBvaygpOwogIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBzLmNsZWFyKCk7CiAgICBsbCB1MT1jW2ldOwogICAgbGwgdT1hW3UxXTsKCiAgICB3aGlsZSh1PjEpewogICAgICAgIHMuaW5zZXJ0KHNudFt1XSk7CiAgICAgICAgdS89c250W3VdOwogICAgfQogICAgZm9yKGF1dG8geDpzKQogICAgICAgIGdbdTFdLnB1c2hfYmFjayh4KTsKCiAgfQoKZm9yKGludCBpPTE7aTw9bjtpKyspewogIGRbaV09ZFtpLTFdOwogIGxsIHU9Y1tpXTsKICBsbCBtPWdbdV0uc2l6ZSgpOwogIGZvcihpbnQgbWFzaz0wO21hc2s8KDE8PG0pO21hc2srKyl7CiAgICAgIGxsIGQxPTE7CiAgICBmb3IoaW50IGo9MDtqPG07aisrKQogICAgICAgIGlmKG1hc2s+PmomMSkgZDEqPWdbdV1bal07CiAgICAgZFtpXVtkMV0rKzsKICB9Cgp9CmZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBsbCB1PWNbaV07CiAgICAvL2NvdXQ8PHU8PCIgIjsKICAgIGxsIHg9c3RbdV0seT1lblt1XTsKICAgIGxsIG09Z1t1XS5zaXplKCk7CiAgICBsbCByZXM9MDsKCiAgZm9yKGludCBtYXNrPTA7bWFzazwoMTw8bSk7bWFzaysrKXsKICAgICAgbGwgZDE9MSxjbnQ9MDsKICAgIGZvcihpbnQgaj0wO2o8bTtqKyspCiAgICAgICAgaWYobWFzaz4+aiYxKSBkMSo9Z1t1XVtqXSxjbnQrKzsKCiAgICAgICBpZihjbnQlMj09MCkgcmVzKz1kW3ldW2QxXS1kW3gtMV1bZDFdOwogICAgICAgZWxzZSByZXMtPWRbeV1bZDFdLWRbeC0xXVtkMV07CiAgfQogIHNpdVt1XT1yZXM7Cgp9CmZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgY291dDw8c2l1W2ldPDwiICI7CgpyZXR1cm4gMDsKfQovKgo1CjY2IDE1IDUgNyAxMQoxIDIKMiAzCjIgNAoxIDUKKi8K