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)
        {
            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 (kombinacijaSu(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;
            }
            else if ( sadrzi(1) || sadrziDva(2) || kombinacijaSu(3, 3, 2) || kombinacijaSu(2, 3, 4) || kombinacijaSu(2,3,5) || kombinacijaSu(3,3,2) ) //sviSu(1) umesto sadrzi(1) * NETESTIRANO SVE
            {
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 10, 10) || kombinacijaSu(2, 9, 10) || kombinacijaSu(2, 9, 9) || kombinacijaSu(2, 8, 10) || kombinacijaSu(2, 8, 9) || kombinacijaSu(2, 8, 8) || kombinacijaSu(2, 7, 10) || kombinacijaSu(2, 7, 9) || kombinacijaSu(2, 7, 8) || kombinacijaSu(2, 7, 7) || kombinacijaSu(2, 6, 10) || kombinacijaSu(2, 6, 9) || kombinacijaSu(2, 6, 8) || kombinacijaSu(2, 6, 7) || kombinacijaSu(2, 5, 7) || kombinacijaSu(2, 5, 8) || kombinacijaSu(2, 5, 9) || kombinacijaSu(2, 5, 10))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3 };
                brMogucih = zaNeMoze(neMoze, 3);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(3, 3, 10) || kombinacijaSu(3, 3, 7) || kombinacijaSu(3, 3, 8) || kombinacijaSu(3, 3, 9))
            {
                List<int> neMoze = new List<int>() { 1, 2, 4 };
                brMogucih = zaNeMoze(neMoze, 4);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(3, 3, 5) || kombinacijaSu(3, 3, 6))
            {
                List<int> neMoze = new List<int>() { 1, 2, 4, 7 };
                brMogucih = zaNeMoze(neMoze, 7);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 4, 7) || kombinacijaSu(2, 4, 8))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 5, 9 };
                brMogucih = zaNeMoze(neMoze, 9);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 4, 9) || kombinacijaSu(2, 4, 10))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 5 };
                brMogucih = zaNeMoze(neMoze, 5);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 5, 6) || kombinacijaSu(2, 6, 6))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 7 };
                brMogucih = zaNeMoze(neMoze, 7);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (sviSu(4) || kombinacijaSu(3, 4, 4))
            {
                List<int> neMoze = new List<int>() { 1, 2, 5 };
                brMogucih = zaNeMoze(neMoze, 5);
                Console.WriteLine(brMogucih);
                return;
            }
            else if ( sviSu(3) )
            {
                brMogucih = naSvaka(3);
                Console.WriteLine(brMogucih);
                return;
            }
            else if ( kombinacijaSu(2,3,6) )
            {
                brMogucih = naSvaka(6);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 3, 8))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 4, 5, 7, 9, 10, 11, 13, 17, 19, 25 };
                brMogucih = zaNeMoze(neMoze, 25);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 3, 9))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 4, 5, 7, 10, 11, 13, 19 };
                brMogucih = zaNeMoze(neMoze, 19);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 3, 10))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 4, 5, 7, 11, 13 };
                brMogucih = zaNeMoze(neMoze, 13);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 4, 5))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 5, 6, 7, 9, 11, 13, 17, 21 };
                brMogucih = zaNeMoze(neMoze, 21);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 4, 6))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 5, 7, 9, 13 };
                brMogucih = zaNeMoze(neMoze, 13);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(2, 5, 5))
            {
                List<int> neMoze = new List<int>() { 1, 2, 3, 6, 7, 11 };
                brMogucih = zaNeMoze(neMoze, 11);
                Console.WriteLine(brMogucih);
                return;
            }
            else if (kombinacijaSu(3, 3, 4))
            {
                List<int> neMoze = new List<int>() { 1, 2, 4, 5, 7, 10, 13 };
                brMogucih = zaNeMoze(neMoze, 13);
                Console.WriteLine(brMogucih);
                return;
            }
            else
            {
                List<int> neMoze = new List<int>() { 1, 2 };
                brMogucih = zaNeMoze(neMoze, 2);
                Console.WriteLine(brMogucih);
                return;
            }
        }
    }
}