#include #include #include #include #define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define li long long int #define rep(i,to) for(li i=0;i<((li)(to));i++) #define repp(i,start,to) for(li i=(li)(start);i<((li)(to));i++) #define pb push_back #define sz(v) ((li)(v).size()) #define bgn(v) ((v).begin()) #define eend(v) ((v).end()) #define allof(v) (v).begin(), (v).end() #define dodp(v,n) memset(v,(li)n,sizeof(v)) #define bit(n) (1ll<<(li)(n)) #define mp(a,b) make_pair(a,b) #define rin rep(i,n) #define EPS 1e-10 #define ETOL 1e-8 #define MOD 1000000007 #define F first #define S second #define p2(a,b) cout< primes, primess; li keta_sum(li x){ li res=0; while(x>0){ res+=x%10; x/=10; } return res; } li hashh(li x){ while(x>=10)x=keta_sum(x); return x; } int main(){ rep(i,200001)prime[i]=true; prime[0]=prime[1]=false; repp(i,2,3100){ if(prime[i]) for(li j=2; i*j<200001; j++){ prime[i*j]=false; } } li l, r; cin>>l>>r; rep(i,200001)if(prime[i] && i>=l && i<=r)primess.pb(i); rep(i,sz(primess))primes.pb(hashh(primess[i])); li maxlen=0; li res=-1; set
  • use; li num[10]={0}; li n=sz(primes); li to=0; rep(i,n){ while(tomaxlen){ maxlen=to-i; res=primess[i]; } else if(to-i==maxlen)res=max(res, primess[i]); if(to==n)break; num[primes[to]]++; use.insert(primes[to]); to++; while(sz(use)