#include<bits/stdc++.h>
#define N 505
#define M 100005
using namespace std;
typedef long long LL;
const LL oo=1e18;
const LL zero=1e12;
int Q[N],f[N],a[N],End[N],Next[M],Go[M],cnt;
LL Value[M],ans;
int n,m,S,T,i,j;
int BFS(){
  for (int i=1;i<=T;i++) f[i]=-1;
  int h=0,t=1;Q[1]=S;f[S]=1;
  while (h<t){
    int x=Q[++h];if (x==T) return 1;
    for (int i=End[x],y;i;i=Next[i])
      if (Value[i]&&f[y=Go[i]]==-1)
        f[y]=f[x]+1,Q[++t]=y;
  }return 0;
}
LL Dinic(int x,LL sum){
  if (x==T) return sum;LL os=sum;
  for (int i=End[x],y;i;i=Next[i])
    if (Value[i]){
      if (f[y=Go[i]]!=f[x]+1) continue;
      LL now=Dinic(y,min(os,Value[i]));
      os-=now;Value[i]-=now;Value[i^1]+=now;
    }
  if (sum==os) f[x]=-1;return sum-os;
}
void add(int u,int v,LL w){
  Go[++cnt]=v;Next[cnt]=End[u];End[u]=cnt;Value[cnt]=w;
}
void addedge(int u,int v,LL w){/*printf("%d->%d %lld\n",u,v,w);*/add(u,v,w);add(v,u,0);}
int main(){
	scanf("%d",&n);
	for (i=1;i<=n;i++) scanf("%d",&a[i]);
	S=n+1;T=n+2;cnt=1; 
	for (i=1;i<=n;i++)
	  for (j=i+1;j<=n;j++)
	    if (j%i==0) 
			  addedge(j,i,oo);
	for (i=1;i<=n;i++) 
	  addedge(S,i,zero),addedge(i,T,zero-a[i]);
	ans=0;
	while (BFS())
	  ans+=Dinic(S,oo);
	//printf("%lld\n",ans);
	printf("%lld\n",zero*n-ans);
}