Question: The first input of following code is a single value like `a=3`, and second input is an array consisting of pairs of values like: `B = [[1000, 1], [1000, 3], [999, 4]]`. If the first value of each pair is even then I want the corresponding output value to be based on some specific calculation as shown in the code; if the first value is odd, there is another calculation as shown in code. The second value in the pair is the number of times I'd like to repeat the calculation for the pair. Calculations in the example should be repeated 1, 3 and 4 times for pairs 1, 2 and 3, respectively.

I am not sure how to repeat the calculation.

```
import numpy as np

a = np.array(input(), dtype=int)
B = []
for i in range(a):
    b = np.array(input().split(), dtype=int)
    B.append(b)
B = np.array(B)
C = []

for i in range(a):
    if B[i, 0] % 2==0:
        c = (B[i, 0] - 99) * 3        
        C.append(c)
    else: 
        if B[i, 0] % 2 == 1:
            d = (B[i, 0] - 15) * 2    
            C.append(d)

```

Answer: 
Ignoring the input, let's say you have an array

```
B = np.array([[1000, 1], [1000, 3], [999, 4]])

```

You can perform selective computations using a mask. The quickest way to type is probably using `np.where`:

```
C = np.where(B[:, 0] % 2, 2 * (B[:, 0] - 15), 3 * (B[:, 0] - 99))

```

This is a bit inefficient since it computes both values for each element. A much more efficient, but uglier, method would be to do everything in-place:

```
b = B[:, 0]
mask = (b % 2 == 0)
C = np.empty_like(b)
np.subtract(b, 99, out=C, where=mask)
np.subtract(b, 15, out=C, where=~mask)
np.multiply(C, 3, out=C, where=mask)
np.multiply(C, 2, out=C, where=~mask)

```

Numpy then provides the `repeat` function to do the repetition after you've computed the output values:

```
C = np.repeat(C, B[:, 1])

```

You can write the whole thing as a one-liner:

```
C = np.repeat(np.where(B[:, 0] % 2, 2 * (B[:, 0] - 15), 3 * (B[:, 0] - 99)), B[:, 1])

```
Probably a case for nested `for` loops. You have your outer loop, then loop through your calculations a certain number of times. So, from your example, try something like:

```
for i in range(a):
    for x in range(B[i][1]):
         if B[i][0] % 2 == 0:
             B[i][0]=(B[i][0]-99)*3
         else:
             B[i][0]=(B[i][0]-15)*2
         C.append(B[i][0]

```

Edited: If you want to repeat on the same value, just put it back into `B` and then append the value of that element of B back into C

Some other notes, not really related to your question but since the number will either be even or odd, you don't need the second `if` statement inside your `else`. If you really do need to explicitly check another condition, use Python's `elif` statement, short for `else if` which will only check the condition if none of the previous conditions were matched.