  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$.
