using System;
using System.IO;

public class Pikado
{
	public static void Main()
	{
		//Math.Ceiling(0.3)
		//Math.Floor(0.7)
		float[] rasporedi = Translate();
		int imenilacPrvi = Convert.ToInt32(rasporedi[0]);
		int imenilacDrugi = Convert.ToInt32(rasporedi[1]);
		int imenilacTreci = Convert.ToInt32(rasporedi[2]);
		float granicaPrva = rasporedi[3];
		float granicaDruga = rasporedi[4]+1;
		rasporedi = null;
		Console.WriteLine(brojResenja(imenilacPrvi , imenilacDrugi , imenilacTreci , granicaPrva , granicaDruga));
	}

	public static float brojResenja(int p , int q , int r , float m , float n)
	{
		float nzs0 = p*q*r;
		float nzs1 = p*q;
		float nzs2 = p*r;
		float nzs3 = q*r;
		if(1.0/(double) p + 1.0/(double) q + 1.0/(double) r > 1.0)
		{
			return 0;
		}
		if(1.0/(double) p + 1.0/(double) q + 1.0/(double) r == 1.0)
		{
			//int s = Math.Ceiling(m/nzs);
			if(m>10){
				return (float) Math.Ceiling(((n-nzs0*Math.Ceiling((m/nzs0)))/nzs0));

			}
			else{
				int suma = 0;
				for(int i=(int)m; i<11; i++){
					if(Math.Ceiling((float)i/p) + Math.Ceiling((float)i/q) + Math.Ceiling((float)i/r) <= i){
						suma++;
					}
				}
				return (float) suma + (float) Math.Ceiling((n-nzs0*Math.Ceiling(11/nzs0))/nzs0);
			}
		}
		if(1*nzs0/p + 1*nzs0/q + 1*nzs0/r - nzs0 == -1){
			if(p!=q && p!=r && q!=r)
			{
				if(m>10){
					return (float) Math.Ceiling((n-nzs1*Math.Ceiling(m/nzs1))/nzs1) + (float)Math.Ceiling((n-nzs2*Math.Ceiling(m/nzs2))/nzs2) +
					(float)Math.Ceiling((n-nzs3*Math.Ceiling(m/nzs3))/nzs3);
				}
				else{
					int suma = 0;
					for(int i=(int)m; i<11; i++){
						if(Math.Ceiling((float)i/p) + Math.Ceiling((float)i/q) + Math.Ceiling((float)i/r) <= i){
							suma++;
						}
					}
					return (float) suma + (float) Math.Ceiling((n-nzs1*Math.Ceiling(m/nzs1))/nzs1) + (float)Math.Ceiling((n-nzs2*Math.Ceiling(m/nzs2))/nzs2) +
					(float)Math.Ceiling((n-nzs3*Math.Ceiling(m/nzs3))/nzs3);
				}
			}
			else if(p==q && p==r && q==r){
				if(m>10){
					return (float)Math.Ceiling((n-p*Math.Ceiling(m/p))/p);
				}
				else{
					int suma = 0;
					for(int i=(int)m; i<11; i++){
						if(3* Math.Ceiling((float)i/p) <= i){
							suma++;
						}
					}
					return (float) suma + (float) Math.Ceiling((n-p*(float)Math.Ceiling(11F/p))/p);
				}
			}
			else{
				int num1 , num2;
				if(p==q){
					num1 = p;
					num2 = r;
				}
				else if(p==r)
				{
					num1 = p;
					num2 = q;
				}
				else{
					num1 = p;
					num2 = q;
				}
				int nzs4 = num1*num2;
				if(m>10){
					return (float) Math.Ceiling((n-nzs4*Math.Ceiling(m/nzs4))/nzs4) + (float) Math.Ceiling((n-num1*Math.Ceiling(m/num1))/num1);
				}
				else{
					int suma = 0;
					for(int i=(int)m; i<11; i++){
						if(Math.Ceiling((float)i/p) + Math.Ceiling((float)i/q) + Math.Ceiling((float)i/r) <= i){
							suma++;
						}
					}
					return (float) suma + (float) Math.Ceiling((n-nzs4*Math.Ceiling(m/nzs4))/nzs4) + (float) Math.Ceiling((n-num1*Math.Ceiling(m/num1))/num1);
				}
			}
		}
		if(1*nzs0/p + 1*nzs0/q + 1*nzs0/r - nzs0 == -2){
			if(p!=q && p!=r && q!=r)
			{
				if(m>10){
					return (float) Math.Ceiling((n-p*Math.Ceiling(m/p))/p) + (float) Math.Ceiling((n-q*Math.Ceiling(m/q))/q) + 
					(float) Math.Ceiling((n-r*Math.Ceiling(m/r))/r);
				}
				else{
					int suma = 0;
					for(int i=(int)m; i<11; i++){
						if(Math.Ceiling((float)i/p) + Math.Ceiling((float)i/q) + Math.Ceiling((float)i/r) <= i){
							suma++;
						}
					}
					return (float) suma + (float) Math.Ceiling((n-p*Math.Ceiling(m/p))/p) + (float) Math.Ceiling((n-q*Math.Ceiling(m/q))/q) +
					(float) Math.Ceiling((n-r*Math.Ceiling(m/r))/r);
				}
			}
			else if(p==q && p==r && q==r){
				if(m>10){
					return (float) Math.Ceiling((n-p*Math.Ceiling(m/p))/p);
				}
				else{
					int suma = 0;
					for(int i=(int)m; i<11; i++){
						if(3* Math.Ceiling((float)i/p) <= i){
							suma++;
						}
					}
					return (float) suma + (float) Math.Ceiling((n-p*Math.Ceiling(11F/p))/p);
				}
			}
			else{
				int num1 , num2;
				if(p==q){
					num1 = p;
					num2 = r;
				}
				else if(p==r)
				{
					num1 = p;
					num2 = q;
				}
				else{
					num1 = p;
					num2 = q;
				}
				int nzs4 = num1*num2;
				if(m>10){
					return (float) Math.Ceiling((n-num1*Math.Ceiling((float)m/num1))/num1) + (float) Math.Ceiling((n-num2*Math.Ceiling((float)m/num2))/num2);
				}
				else{
					int suma = 0;
					for(int i=(int)m; i<11; i++){
						if(Math.Ceiling((float)i/p) + Math.Ceiling((float)i/q) + Math.Ceiling((float)i/r) <= i){
							suma++;
						}
					}
					return (float) suma + (float) Math.Ceiling((n-num1*Math.Ceiling(m/num1))/num1) + (float) Math.Ceiling((n-num2*Math.Ceiling(m/num2))/num2);
				}
			}
		}
		else if(1*nzs0/p + 1*nzs0/q + 1*nzs0/r - nzs0 < -2)
		{
			if(m>10){
				return (float) n-(float) m;
			}
			else{
				int suma = 0;
				for(int i=(int)m; i<11; i++){
					if(Math.Ceiling((float)i/p) + Math.Ceiling((float)i/q) + Math.Ceiling((float)i/r) <= i){
						suma++;
					}
				}
				return (float) suma +(float) n-11F;
			}
		}
		else return 0;
	}

	public static float[] Translate()
	{
		Console.SetIn(new StreamReader(Console.OpenStandardInput(8*2048) , Console.InputEncoding , false , 8*2048));
		return Array.ConvertAll<string, float>(Console.ReadLine().Trim().Split(' '), float.Parse);
	}
}