#include<bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
#pragma target("avx,avx2,avx256f,sse2,sse3,sse4,sse4.2")
using namespace std;
int n,mx;
int a[100010],tr[100010],pre[100010],l[100010];
int rs[100010],r[100010],v[100010];
long long ans[100010];
bool st[100010];
inline void add1(int x,int y)
{
for(;x<=mx;x+=x&-x)tr[x]=max(tr[x],y);
}
inline void add2(int x,int y)
{
for(;x<=mx;x+=x&-x)tr[x]=min(tr[x],y);
}
inline int ask1(int x)
{
int s=0;
for(;x;x-=x&-x)s=max(s,tr[x]);
return s;
}
inline int ask2(int x)
{
int s=n+1;
for(;x;x-=x&-x)s=min(s,tr[x]);
return s;
}
inline void add(int v,int x,int y)
{
if(st[y])return;
st[y]=1;
ans[y]-=(y-1==0)?0:(long long)v*(x+y-2)/(y-1);
ans[y]+=(long long)v*(x+y-1)/y;
}
signed main()
{
int i;
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>n;
for(i=1;i<=n;++i)cin>>a[i],mx=max(mx,a[i]);
for(i=1;i<=n;++i){
v[i]++;
l[i]=ask1(a[i]-1);
pre[i]=a[l[i]];
add1(a[i],i);
}
for(i=1;i<=mx;++i)tr[i]=n+1;
for(i=n;i>=1;--i){
r[i]=ask2(a[i]);
rs[i]=a[r[i]];
add2(a[i],i);
if(pre[i]>=rs[i])v[l[i]]--;else v[r[i]]--;
}
for(i=1;i<=n;++i){
int x=a[i],l,r;
l=1;
while(l<=x){
r=x/(x/l);
add(v[i],a[i],r),add(v[i],a[i],r+1);
l=r+1;
}
l=1;
while(l<=x){
r=x/(x/l);
st[r]=st[r+1]=0;
l=r+1;
}
}
for(i=1;i<=mx;++i){
ans[i]+=ans[i-1];
cout<<ans[i]<<' ';
}
}