
    Given a batch of n credit card transactions that need to be processed for fraud detection, determine the largest block size (which must be a power of 2) that can be used to analyze these transactions without exceeding the batch size. This block size will be used to efficiently partition the transactions for parallel pattern matching algorithms in the fraud detection system.
    

    
def highest_Power_of_2(n):
    """
    Given a batch of n credit card transactions that need to be processed for fraud detection, determine the largest block size (which must be a power of 2) that can be used to analyze these transactions without exceeding the batch size. This block size will be used to efficiently partition the transactions for parallel pattern matching algorithms in the fraud detection system.
    

    """
def highest_Power_of_2(n):
    """
    Given a batch of n credit card transactions that need to be processed for fraud detection, determine the largest block size (which must be a power of 2) that can be used to analyze these transactions without exceeding the batch size. This block size will be used to efficiently partition the transactions for parallel pattern matching algorithms in the fraud detection system.
    

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