func_code_string: #include <bits/stdc++.h>   using namespace std;   const long double E = 2.71828182845904523536;   const long double pi = acos(-1);   const double eps = 1e-9;   const long long mod = 1e9 + 7;   const long long inf = 1LL << 30;   long long a[400], b[400], n, x;   map<long long, long long> mem[301];   long long gcd(long long a, long long b) {     if (b == 0) return a;     return gcd(b, a % b);   }   long long dp(int i, long long g) {     if (g == 1) return 0;     if (i >= n) return inf;     if (g == 0) return min(dp(i + 1, a[i]) + b[i], dp(i + 1, 0));     long long &ret = mem[i][g];     if (ret != 0) return ret;     long long gc = gcd(a[i], g);     return ret = min(dp(i + 1, gc) + b[i], dp(i + 1, g));   }   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     cin >> n;     for (int i = 0; i < n; i++) {       cin >> a[i];     }     for (int i = 0; i < n; i++) {       cin >> b[i];     }     long long ans = dp(0, 0);     if (ans == inf)       cout << -1 <<   n ;     else       cout << ans <<   n ;     return 0;   }   