# a/b < m/n < c/d < 1 return minimum m n
fn <- function(a,b,c,d){
if((a/b>=c/d)|a/b>1|c/d>1) return(NULL)
else
f <- function(x) a/b<x & x<c/d
num=den=0
for(i in 1:(b+d)){
if(num!=0) break
for(j in 1:i){
if(f(j/i)){
num=j
den=i
break
}
}
}
cat(paste0(a,'/',b,' < '))
cat(paste0(num,'/',den,' < '))
cat(paste0(c,'/',d,'\n'))
}
# a/b < c/d < 1 => minimum m,n where a/b < m/n < c/d
fn(4,5,5,6)
fn(3,5,5,7)
fn(1,5,1,2)
fn(5,8,7,11)