(n,),a,*e=[[*map(int,s.split())]for s in open(0)] M=998244353 def pf(n): a,f={},2 while f*f<=n: if n%f:f+=1 else:a[f]=a.get(f,0)+1;n//=f if n>1:a[n]=a.get(n,0)+1 return a g=[[]for _ in range(n)] for u,v in e: g[u-1]+=v-1, g[v-1]+=u-1, q=[(0,-1,0)] l=[pf(i)for i in a] ans=[1]*n while q: p,z,s=q.pop() if s: r=0 for k,v in l[p].items(): ans[p]*=pow(k,v,M) ans[p]%=M if len(l[z])