factorial done with do