#include <bits/stdc++.h>

#define name "vestonluvto"
const char* namein = name ".inp";
const char* nameout = name ".out";

#define fastio() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define PI 3.141592653589793238462
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define pb emplace_back

using namespace std;

#ifndef LOCAL
#define debug(x) cerr << #x <<" "; _print(x); cerr << endl;
#else
#define debug(x)
#endif

void _print(int t) {cerr << t;}
void _print(long long t) {cerr << t;}
void _print(string t) {cerr << t;}
void _print(char t) {cerr << t;}
void _print(long double t) {cerr << t;}
void _print(double t) {cerr << t;}
void _print(unsigned long long t) {cerr << t;}

template <class T, class V> void _print(pair <T, V> p);
template <class T> void _print(vector <T> v);
template <class T> void _print(set <T> v);
template <class T, class V> void _print(map <T, V> v);
template <class T> void _print(multiset <T> v);
template <class T, class V> void _print(pair <T, V> p) {cerr << "{"; _print(p.first); cerr << ","; _print(p.second); cerr << "}";}
template <class T> void _print(vector <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(set <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T> void _print(multiset <T> v) {cerr << "[ "; for (T i : v) {_print(i); cerr << " ";} cerr << "]";}
template <class T, class V> void _print(map <T, V> v) {cerr << "[ "; for (auto i : v) {_print(i); cerr << " ";} cerr << "]";}

void homefix(){
    #ifndef LOCAL
    freopen("fixcode.txt", "w", stderr);
    #endif
}

void home(){
     homefix();
     if (fopen(namein, "r")) {
        freopen(namein, "r", stdin);
        freopen(nameout, "w", stdout);
     }
}

const int MAXN = 105;
const int INF = 1e9;

int n;
int a[MAXN];

int p[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53};
int fact_mask[65];

int dp[2][65536];
int head[65537];
int valid_v[3801100];
int valid_nmask[3801100];

int active[2][65536];
int n_active[2];
int vis[65536];

void nhap(){
    cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
    }
}

void precompute_transitions() {
    static bool done = false;
    if (done) return;
    done = true;

    for(int v = 1; v <= 58; v++){
        fact_mask[v] = 0;
        for(int j = 0; j < 16; j++){
            if(v % p[j] == 0){
                fact_mask[v] |= (1 << j);
            }
        }
    }

    int ptr = 0;
    int total_masks = 1 << 16;
    for(int mask = 0; mask < total_masks; mask++){
        head[mask] = ptr;
        for(int v = 1; v <= 58; v++){
            if((mask & fact_mask[v]) == 0){
                valid_v[ptr] = v;
                valid_nmask[ptr] = mask | fact_mask[v];
                ptr++;
            }
        }
    }
    head[total_masks] = ptr;
}

void solve(){
    precompute_transitions();
    memset(vis, 0, sizeof(vis));

    active[0][0] = 0;
    n_active[0] = 1;
    dp[0][0] = 0;

    for(int i = 1; i <= n; i++){
        int cur = i & 1;
        int pre = cur ^ 1;
        n_active[cur] = 0;

        for(int k = 0; k < n_active[pre]; k++){
            int mask = active[pre][k];
            int cost_base = dp[pre][mask];

            int start = head[mask];
            int end = head[mask + 1];
            for(int j = start; j < end; j++){
                int nmask = valid_nmask[j];
                int cost = cost_base + abs(a[i] - valid_v[j]);

                if(vis[nmask] != i){
                    vis[nmask] = i;
                    dp[cur][nmask] = cost;
                    active[cur][n_active[cur]++] = nmask;
                } else if(cost < dp[cur][nmask]){
                    dp[cur][nmask] = cost;
                }
            }
        }
    }

    int ans = INF;
    int final_state = n & 1;
    for(int k = 0; k < n_active[final_state]; k++){
        int mask = active[final_state][k];
        if(dp[final_state][mask] < ans){
            ans = dp[final_state][mask];
        }
    }

    cout << ans << "\n";
}

int main(){
    fastio(); home(); int t = 1;
    //cin >> t;
    while(t--) nhap(), solve();
    return 0;
}