On Primitive Words I: A New Algorithm
  Let $F_k$ be the free group on $k$ generators, and let $H\le J\le \F_k$ be subgroups of finite rank. We present a new elementary algorithm to determine whether $H$ is a free factor of $J$. In particular, this algorithm can determine whether a given element $w\in F_k$ is primitive, i.e. whether it belongs to some basis of $F_k$. 
Doron Puder
math.GR math.CO