#include #include using namespace std; bool prim (long long x) { long long d, lim; lim = sqrt (x); if (x % 2 == 0 && x != 2) return 0; if (x == 2) return 1; if (x == 0 || x == 1) return 0; for (d = 3; d <= lim; d ++) if (x % d == 0) return 0; return 1; } long long gcd (long long a, long long b) { long long r; while (b) { r = a % b; a = b; b = r; } return a; } int main () { long long ans; long long a, b, c, d; long long x, y; /*freopen ("prime.in", "r", stdin); freopen ("prime.out", "w", stdout);*/ scanf ("%lld%lld", &a, &b); x = gcd (a, b); if (x == 1) { ans = b - a + 1; printf ("%lld\n", ans); return 0; } for (c = a; ;c ++) if (prim (c)) break; for (d = b; ;d --) if (prim (d)) break; ans = d - c + 1; x = gcd (a, d); y = gcd (c, b); if (x == 1 && d - a + 1 > ans) ans = d - a + 1; if (y == 1 && b - c + 1 > ans) ans = b - c + 1; printf ("%lld\n", ans); return 0; }