#include #include #include #include #include #include #include #include #include using namespace std; int num[10010] , id[10010] , pri[110]; int init() { pri[0] = 2; pri[1] = 3; int p = 2; for( int i=5 ; i<100 ; i++ ) { int j = 0; for( ; j < p ; j++ ) if( i % pri[j] == 0 ) break; if( j >= p ) pri[p++] = i; } return p; } void update( int sub , int nw , int x , int lv , int p ) { //cout << sub << " " << x << " " << lv << " " << p << endl; id[sub] = nw; if( x == 1 ) return ; if( lv >= p ) { if( x > 1 ) { id[ sub * x ] = nw; id[x] = nw; } return ; } if( x % pri[lv] == 0 ) { int t = 0 , y = 1 , xx = x; while( xx % pri[lv] == 0 ) { t++; xx /= pri[lv]; } for( int i=0 ; i<=t ; i++ ) { update( sub * y , nw , xx , lv+1 , p ); y *= pri[lv]; } } else update( sub , nw , x , lv+1 , p ); return ; } int main() { int n , k; int p = init(); while( scanf( "%d" , &n ) != EOF ) { memset( id , 0 , sizeof(id) ); for( int i=1 ; i<=n ; i++ ) scanf( "%d" , &num[i] ); int ans = 0; for( int i=n-1 ; i>0 ; i-- ) { update( 1 , i+1 , num[i+1] , 0 , p ); ans += id[ num[i] ]; } printf( "%d\n" , ans ); } return 0; }