#define fst std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout << std::fixed << std::setprecision(20)
#define le "\n"
#define ll long long
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+50;
const int mod=998244353;
map<ll,ll> mp;
ll gcd(ll n,ll m){
return m? gcd(m,n%m): n;
}
int main() {
int n; cin>>n;
vector<ll> a(n+1),w(n+1);
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>w[i];
for(int i=1;i<=n;i++){
mp[a[i]] = mp[a[i]] ? min(mp[a[i]],w[i]) : w[i];
for(auto j: mp){
mp[gcd(j.first,a[i])] = mp[gcd(j.first,a[i])] ? min(mp[gcd(j.first,a[i])],j.second+w[i]) : j.second+w[i];
}
}
cout<<(mp[1] ? mp[1]:-1)<<le;
return 0;
}
977A - Wrong Subtraction | 263A - Beautiful Matrix |
180C - Letter | 151A - Soft Drinking |
1352A - Sum of Round Numbers | 281A - Word Capitalization |
1646A - Square Counting | 266A - Stones on the Table |
61A - Ultra-Fast Mathematician | 148A - Insomnia cure |
1650A - Deletions of Two Adjacent Letters | 1512A - Spy Detected |
282A - Bit++ | 69A - Young Physicist |
1651A - Playoff | 734A - Anton and Danik |
1300B - Assigning to Classes | 1647A - Madoka and Math Dad |
710A - King Moves | 1131A - Sea Battle |
118A - String Task | 236A - Boy or Girl |
271A - Beautiful Year | 520B - Two Buttons |
231A - Team | 479C - Exams |
1030A - In Search of an Easy Problem | 158A - Next Round |
71A - Way Too Long Words | 160A - Twins |