using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace drugizadatakprvipokusajpetlja2020
{
    class Program
    {
        static int p;
        static int q;
        static int r;
        static long L;
        static long R;

        static Boolean sviSu(int broj)
        {
            if (p == broj && q == broj && r == broj)
                return true;
            else
                return false;
        }

        static Boolean kombinacijaSu(int a, int b, int c)//(p == 3 && q == 4 && r == 5)
        {
            if ((p == a && q == b && r == c) || (p == a && q == c && r == b) || (p == b && q == a && r == c) || (p == b && q == c && r == a) || (p == c && q == a && r == b) || (p == c && q == b && r == a))
                return true;
            else
                return false;
        }

        static Boolean sadrzi(int broj)
        {
            if (p == broj || q == broj || r == broj)
                return true;
            else
                return false;
        }

        static Boolean sadrziDva(int broj)
        {
            if ( (p == broj && q == broj) || (p == broj && r == broj) || (q == broj && r == broj) )
                return true;
            else
                return false;
        }

        static long naSvaka(int koliko)
        {
            long brMogucih = (long)Math.Floor((decimal)R / koliko);
            brMogucih -= (long)Math.Floor((decimal)(L - 1) / koliko);
            return brMogucih;
        }

        static long zaNeMoze(List<int> neMoze, int max)
        {
            int oduzmi = 0;
            if (L <= max)
            {
                for (int i = (int)L; i <= max; i++)
                {
                    if (i > R)
                        break;
                    if (neMoze.Contains(i))
                    {
                        oduzmi++;
                    }
                }
            }
            long brMogucih = R - L + 1 - oduzmi;
            return brMogucih;
        }

        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split();
            p = int.Parse(s[0]);
            q = int.Parse(s[1]);
            r = int.Parse(s[2]);
            L = long.Parse(s[3]);
            R = long.Parse(s[4]);
            long brMogucih = 0;
            if ( sadrzi(1) || sadrziDva(2) || kombinacijaSu(3, 3, 2) ) //sviSu(1) umesto sadrzi(1) * NETESTIRANO SVE
            {
                Console.WriteLine(brMogucih);
                return;
            }
            else if ( sviSu(3) )
            {
                brMogucih = naSvaka(3);
                Console.WriteLine(brMogucih);
                return;
            }
            else if ( sviSu(4) )
            {
                List<int> neMoze = new List<int>() { 1, 2, 5 };
                brMogucih = zaNeMoze(neMoze, 5);
                Console.WriteLine(brMogucih);
                return;
            }
            else if ( kombinacijaSu(3, 4, 5) || sviSu(5) || sviSu(6) || sviSu(7) || sviSu(8) || sviSu(9) || sviSu(10) )
            {
                List<int> neMoze = new List<int>() { 1, 2 };
                brMogucih = zaNeMoze(neMoze, 2);
                Console.WriteLine(brMogucih);
                return;
            }//2,3,7
            else if ( kombinacijaSu(2, 3, 7) )//2,3,7
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 15, 16, 17, 19, 22, 23, 25, 29, 31, 37, 43 };//PROVERI OVO NAJBITNIJE,trebalo bi da je dobro :)
                brMogucih = zaNeMoze(neMoze, 43);
                Console.WriteLine(brMogucih);
                return;
            }
            //Console.WriteLine(brMogucih);
        }
    }
}
/*
?????? 1
????
2 3 7 9 14
?????
2
?????? 2
????
3 4 5 1 1000000000000000000
?????
999999999999999998
*/
/*int oduzmi = 0;
if (L <= 43)
{
    for (int i = (int)L; i <= 43; i++)
    {
        if (i > R)
            break;
        if (neMoze.Contains(i))
        {
            oduzmi++;
        }
    }
}
brMogucih = R - L + 1 - oduzmi;*/