May be this was Google's algorithm during the auction:
while(bid < lobbying_cost) { bid = getMathematicalConstant(current_bid); }
while(bid < lobbying_cost) { bid = getMathematicalConstant(current_bid); }
edit: Although your algorithm is preferable !