module Main; import CPLib.IO; import CPLib.UnionFind; main : IO () = ( let l = *read_i; let r = *read_i; let uf = UnionFind::create(r-l+1); let uf = range(l, r+1).fold(uf, |x, uf| count_up(2).take_while(|i| i*x <= r).map(mul(x)).fold(uf, |y, uf| uf.unite(x-l, y-l) ) ); let ans = uf.get_group_count - 1; ans.to_string.println;; pure() );