#include <bits/stdc++.h>
using namespace std;
long long a1, b1, a2, b2, L, R;
long long gcd(long long a, long long b) {
  return a % b == 0 ? b : gcd(b, a % b);
}
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
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, x, y);
  long long t = x;
  x = y;
  y = t - a / b * y;
  return r;
}
int main() {
  scanf("%I64d %I64d %I64d %I64d %I64d %I64d", &a1, &b1, &a2, &b2, &L, &R);
  if (a1 < a2) {
    swap(a1, a2);
    swap(b1, b2);
  }
  long long gcda1a2 = gcd(a1, a2);
  long long lcma1a2 = lcm(a1, a2);
  if ((b1 - b2) % gcda1a2 == 0) {
    long long bei = (b1 - b2) / gcda1a2;
    long long k, l;
    exgcd(a1, a2, k, l);
    k = -k;
    k *= bei;
    l *= bei;
    k %= a2;
    l %= a1;
    long long x = a2 * l + b2;
    L = max(L, max(b1, b2));
    if (x >= L) x = x - lcma1a2 * ((x - L) / lcma1a2 + 1);
    long long ans = (R - x) / lcma1a2 - (L - x - 1) / lcma1a2;
    if (ans <= 0)
      puts("0");
    else
      printf("%I64d\n", ans);
  } else
    puts("0");
  return 0;
}
