#include <bits/stdc++.h>
using namespace std;
long long Ceil(long long a, long long b);
long long Floor(long long a, long long b) {
  return b < 0 ? Floor(-a, -b) : a < 0 ? -Ceil(-a, b) : a / b;
}
long long Ceil(long long a, long long b) {
  return b < 0 ? Ceil(-a, -b) : a < 0 ? -Floor(-a, b) : (a + b - 1) / b;
}
long long Exgcd(long long a, long long b, long long& x, long long& y) {
  if (a == 0 && b == 0) return -1;
  if (!b) {
    x = 1, y = 0;
    return a;
  }
  long long g = Exgcd(b, a % b, y, x);
  y -= a / b * x;
  return g;
}
long long l, r, a1, a2, b1, b2;
int main() {
  cin >> a1 >> b1 >> a2 >> b2 >> l >> r;
  long long A = a1, B = -a2, C = b2 - b1;
  long long X0, Y0;
  long long g = Exgcd(A, B, X0, Y0);
  if (C % g) {
    cout << 0;
    return 0;
  }
  if (g < 0) {
    g = -g;
    X0 = -X0;
    Y0 = -Y0;
  }
  l = max(0ll, Ceil(l - b1, a1));
  r = Floor(r - b1, a1);
  if (l > r) {
    cout << 0;
    return 0;
  }
  long long L = Ceil(r * g - C * X0, B);
  long long R = min(Floor(l * g - C * X0, B), Floor(C * Y0, A));
  cout << max(0ll, R - L + 1) << endl;
  return 0;
}
