
    Given the total number of banking transactions in a fraud detection batch, determine the largest group size (which must be a power of 2) that can be processed simultaneously without exceeding the batch size, to optimize parallel fraud analysis. For example, if there are 150 transactions, the function should return 128 (2^7) as the optimal group size for parallel processing.
    

    
def highest_Power_of_2(n):
    """
    Given the total number of banking transactions in a fraud detection batch, determine the largest group size (which must be a power of 2) that can be processed simultaneously without exceeding the batch size, to optimize parallel fraud analysis. For example, if there are 150 transactions, the function should return 128 (2^7) as the optimal group size for parallel processing.
    

    """
def highest_Power_of_2(n):
    """
    Given the total number of banking transactions in a fraud detection batch, determine the largest group size (which must be a power of 2) that can be processed simultaneously without exceeding the batch size, to optimize parallel fraud analysis. For example, if there are 150 transactions, the function should return 128 (2^7) as the optimal group size for parallel processing.
    

    """
    res = 0
    for i in range(n, 0, -1):
        if i & i - 1 == 0:
            res = i
            break
    return res