#include <bits/stdc++.h>

using namespace std;

int niz[4];

int gcd(int a, int b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

int findlcm()
{
    int ans = niz[0];
    for (int i = 1; i < 3; i++)
        ans = (((niz[i] * ans)) /
                (gcd(niz[i], ans)));

    return ans;
}

int main()
{
    int p,q,r;
    long long L,R;
    cin>>p>>q>>r>>L>>R;
    int br=0;
    niz[0]=p;
    niz[1]=q;
    niz[2]=r;
    if(p==1||q==1||r==1)
    {
        cout<<0;
        return 0;
    }
    if((1.0/q)+(1.0/p)+(1.0/r)>1)
    {
        cout<<0;
        return 0;
    }
    if((1.0/q)+(1.0/p)+(1.0/r)==1)
    {
        int nzs=findlcm();
        int i;
        for(i=L;;i++)
        {
            if(i%nzs==0)break;
        }
        long long res=ceil((R-i+1)*1.0/nzs);
        cout<<res;
        return 0;
    }
    if(L>10000)
    {
        long long r=R-L+1;
        cout<<r;
        return 0;
    }
    if(L<10000&&R>10000)
    {
        long long br1=0;
        for(int i=L;i<=10000;i++)
        {
            if(ceil(i*1.0/p)+ceil(i*1.0/q)+ceil(i*1.0/r)<=i){
            br1++;
            }
        }
        br1=br1+R-10000;
        cout<<br1;
        return 0;
    }
    if(R<=10000)
    {
       long long br2=0;
       for(int i=L;i<=R;i++)
        {
        if(ceil(i*1.0/p)+ceil(i*1.0/q)+ceil(i*1.0/r)<=i){
            //cout<<i<<" ";
            br2++;
        }
        }
        cout<<br2;
        return 0;
    }
    return 0;
}