#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include ///////// #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) #define P(p) cout<<(p)< prime; array hashList; void makePrime(int N){ for(int i=2; i<= N; ++i){ if(pdp[i] == false){ prime.push_back(i); for(int j = i+i; j<= N; j += i){ pdp[j] = true; } } } return ; } int makehash(int num){ int temp = num; int value = 0; do{ while(temp != 0){ value += temp%10; temp /= 10; } temp = value; value = 0; }while(temp >= 10); return temp; } void makeHashList(int K,int N){ for(int i=0;i>K>>N; makePrime(N); makeHashList(K,N); //hashList unsigned int maxLen=0; int ans = 0; unsigned int i=0; for(int No = 0; No < prime.size() ; ++No){ if(prime[No] < K){ ++i; }else{ break; } } for(i; i < hashSize ; ++i){ set data; for(unsigned int j = i;j < hashSize ; ++j){ if( data.insert(hashList[j]).second != true){ break; } } if( maxLen <= data.size() ){ maxLen = data.size(); ans = prime[i]; } } P(ans); return 0; }