#include <bits/stdc++.h>
using namespace std;
const int mx = 1e6 + 10;
const int mod = 9973;
int n, m;
long long exgcd(long long a, long long b, long long &x, long long &y) {
  if (b == 0) {
    x = 1, y = 0;
    return a;
  }
  long long r = exgcd(b, a % b, y, x);
  y -= (a / b) * x;
  return r;
}
int main() {
  long long a, b, a2, b2, l, r;
  cin >> a >> b >> a2 >> b2 >> l >> r;
  long long x, y;
  long long gcd = exgcd(a, a2, x, y);
  if ((b2 - b) % gcd) {
    cout << 0 << endl;
    return 0;
  } else {
    long long tp = a2 / gcd;
    long long ttp = a * tp;
    x = (((b2 - b) / gcd * x % tp * a % ttp) + ttp) % ttp;
    l -= b, r -= b;
    long long dltb = max(b2 - b - 1, -1ll);
    long long rs, ls, ms;
    if (r - x > 0) {
      rs = (r - x) / ttp * ttp + x;
    } else {
      rs = (r - x - ttp + 1) / ttp * ttp + x;
    }
    if (l - x - 1 > 0) {
      ls = (l - x - 1) / ttp * ttp + x;
    } else {
      ls = (l - x - 1 - ttp + 1) / ttp * ttp + x;
    }
    if (dltb - x > 0) {
      ms = (dltb - x) / ttp * ttp + x;
    } else {
      ms = (dltb - x - ttp + 1) / ttp * ttp + x;
    }
    if (dltb < l)
      cout << (rs - ls) / ttp << endl;
    else if (dltb <= r) {
      cout << (rs - ms) / ttp << endl;
    } else
      cout << 0 << endl;
  }
}
