String manipulation looks good, but your test show that looping with a math operation has slowed down by 50%. What would explain such a big difference?
A problem is a problem only as long as it has a possible solution. Lacking that, it becomes a FACT!