#include <bits/stdc++.h>
long long compare(const void *a, const void *b) {
  return *(long long *)a - *(long long *)b;
}
void swap(long long *x, long long *y) {
  *x = *x ^ *y;
  *y = *x ^ *y;
  *x = *x ^ *y;
}
long long hcf(long long a, long long b) {
  if (b == 0) return a;
  return hcf(b, a % b);
}
int main() {
  long long i, j, k, n = 0, t, x, y, a, b;
  scanf("%lld", &x), scanf("%lld", &y);
  scanf("%lld", &a), scanf("%lld", &b);
  long long lcm = x * y / hcf(x, y);
  for (i = a; i <= b; i++) {
    if (i % lcm == 0) {
      n++;
      break;
    }
  }
  n = n + (b - i) / lcm;
  printf("%lld", n);
  return 0;
}
