var doSearch = function(array, targetValue) {
var min = 0;
var max = array.length - 1;
var guess;
while(max >= min){
guess = (max+min)/2;
print(guess);
guess = Math.floor(guess);
//guess = guess | 0;
if(array[guess] === targetValue){return guess;}
else if(array[guess]<targetValue){min = guess + 1;}
else{max=guess-1;}
}
return -1;
};
var primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97];
var result = doSearch(primes, 73);
print("Found prime at index " + result);
dmFyIGRvU2VhcmNoID0gZnVuY3Rpb24oYXJyYXksIHRhcmdldFZhbHVlKSB7CiAgICB2YXIgbWluID0gMDsKICAgIHZhciBtYXggPSBhcnJheS5sZW5ndGggLSAxOwogICAgdmFyIGd1ZXNzOwogICAgd2hpbGUobWF4ID49IG1pbil7CiAgICAgICAgZ3Vlc3MgPSAobWF4K21pbikvMjsKICAgICAgICBwcmludChndWVzcyk7CiAgICAgICAgZ3Vlc3MgPSBNYXRoLmZsb29yKGd1ZXNzKTsKICAgICAgICAvL2d1ZXNzID0gZ3Vlc3MgfCAwOwogICAgICAgIGlmKGFycmF5W2d1ZXNzXSA9PT0gdGFyZ2V0VmFsdWUpe3JldHVybiBndWVzczt9CiAgICAgICAgZWxzZSBpZihhcnJheVtndWVzc108dGFyZ2V0VmFsdWUpe21pbiA9IGd1ZXNzICsgMTt9CiAgICBlbHNle21heD1ndWVzcy0xO30KICAgIH0KICAgIHJldHVybiAtMTsKfTsKIAp2YXIgcHJpbWVzID0gWzIsIDMsIDUsIDcsIDExLCAxMywgMTcsIDE5LCAyMywgMjksIDMxLCAzNywgCiAgICAgICAgNDEsIDQzLCA0NywgNTMsIDU5LCA2MSwgNjcsIDcxLCA3MywgNzksIDgzLCA4OSwgOTddOwogCnZhciByZXN1bHQgPSBkb1NlYXJjaChwcmltZXMsIDczKTsKcHJpbnQoIkZvdW5kIHByaW1lIGF0IGluZGV4ICIgKyByZXN1bHQpOwogCg==