factorial() up to else