#include <bits/stdc++.h>
using
namespace
std;
int
findDivisor(
int
x,
int
y)
{
unordered_map<
int
,
int
> m;
for
(
int
num = x; num <= y; num++) {
for
(
int
i = 2; i <=
sqrt
(num) + 1; i++) {
if
(num % i == 0) {
if
(num / i == i) {
if
(m.find(i) == m.end())
m.insert(make_pair(i, 1));
else
m[i]++;
}
else
{
if
(m.find(i) == m.end())
m.insert(make_pair(i, 1));
else
m[i]++;
if
(m.find(num / i) == m.end())
m.insert(make_pair(num / i, 1));
else
m[num / i]++;
}
}
}
}
int
divisor = 0;
int
divisorCount = INT_MIN;
for
(
auto
itr = m.begin(); itr != m.end(); itr++) {
if
(itr->second > divisorCount) {
divisorCount = itr->second;
divisor = itr->first;
}
}
return
divisor;
}
int
main()
{
int
x = 3, y = 16;
cout << findDivisor(x, y);
return
0;
}