http://noi.openjudge.cn/math/7648/
"""
小学奥数 7648 蓄水池水管问题
http://noi.openjudge.cn/math/7648/
"""
def gcd(a,b):
if a%b==0:
return b
else:
return gcd(b,a%b)
v=[]
tmp=0
t=0
a,b,c,d=map(int,input().split())
tot=a*b*c*d//gcd(gcd(a,b),gcd(c,d))
v.append(-tot/d)
v.append(tot/a)
v.append(-tot/b)
v.append(tot/c)
#print(v)
while 1:
t+=1
if (tmp+v[int(t)%4])<tot:
tmp+=v[int(t)%4]
else:
t-=1
t+=(tot-tmp)/v[(int(t)+1)%4]
break
print("%.2f" %t)