#include using namespace std; #define REP(i, n) for(int i = 0; i < (int)(n); i++) #define FOR(i,n,m) for (int i=n; i<(int)(m); i++) #define INF 1000000007 #define pb push_back vector prime_list; int notPrime[5000010]; int isOK[10]; int shaku[10]; int cnt[10]; //エラトステネスの篩 void furui(int n){ int i = 2; prime_list.pb(i); while(i> N; REP(i,N){ int t; cin >> t; isOK[t]=1; } prime_list.pb(0); furui(5000000); prime_list.pb(5000001); int prime_num=prime_list.size()-1; int cntf=0,l=0,r=0; int ans=-1; FOR(i,1,prime_num){ if(!cntf){ if(chk(prime_list[i])){ fill(cnt,cnt+10,0); cnt_n(prime_list[i]); l=i; cntf=1; } } else{ if(!chk(prime_list[i])){ if(usedAll()) ans=max(ans,prime_list[i]-1-(prime_list[l-1]+1)); cntf=0; continue; } cnt_n(prime_list[i]); } } if(cntf && usedAll()) ans=max(ans,prime_list[prime_num]-1-(prime_list[l-1]+1)); cout << ans << endl; return 0; }