# Binair zoeken in een lijst van getallen.

lijst = [5, 6, 12, 19, 23, 26, 31, 33, 40, 44, 49, 56, 60, 65, 72, 76, 78, 79, 85,
         86, 89, 95, 100, 109, 111, 120, 123, 125, 134, 143, 152, 157, 165, 174,
         179, 180, 188, 189, 198, 207, 213, 216, 223, 229, 237, 243, 244, 250, 251, 257,
         266, 270, 275, 282, 286, 291, 294, 298, 306, 308, 315, 316, 317, 324, 328, 330,
         332, 336, 340, 345, 347, 353, 359, 363, 370, 379, 387, 396, 403, 406, 410, 411,
         418, 421, 429, 432, 439, 443, 451, 453, 460, 461, 465, 473, 480, 489, 494, 501,
         504, 510, 516, 518, 519, 524, 532, 540, 544, 549, 554, 559, 562, 566, 571, 580,
         583, 585, 593, 600, 608, 616, 620, 627, 632, 634, 641, 642, 651, 654, 655, 659,
         667, 674, 681, 686, 688, 692, 695, 703, 705, 710, 716, 718, 722, 724, 732, 735,
         737, 738, 746, 752, 760, 762, 764, 767, 769, 774, 775, 782, 790, 799, 807, 810,
         814, 819, 827, 835, 839, 842, 844, 852, 858, 860, 869, 875, 878, 882, 886, 894,
         895, 899, 908, 914, 921, 927, 931, 934, 943, 952, 953, 954, 959, 963, 964, 965,
         971, 976, 981, 987, 991, 998 ]

# Geef de index terug van het gegeven getal in de lijst,
# of -1 als het niet in de lijst zit.
def index_in_lijst (getal):
    links = 0
    rechts = len(lijst)
    while links < rechts:
        midden = (links + rechts) // 2
        if getal == lijst[midden]:
            return midden
        elif getal < lijst[midden]:
            rechts = midden
        else:
            links = midden+1
    return -1

# programma
gezocht_getal = int(input("Welk getal zoek je? "))
index = index_in_lijst(gezocht_getal)

if index < 0:
    print (f"{gezocht_getal} zit niet in de lijst")
else:
    print (f"{lijst[index]} heeft index {index} in de lijst")



