problem10
refactor problem10