* ADD: adding border cases handling, 0 and negative inputs