//Для проверки результата вывел массив на экран
using System;
namespace App1
{
class Program
{
private static void Main()
{
const int x = -10;
const int y = 20;
int n, k;
Console.Write("Enter n: "); n = int.Parse(Console.ReadLine());
Console.Write("Enter k: "); k = int.Parse(Console.ReadLine());
Console.WriteLine($"{Environment.NewLine}Array:");
int counter = 0;
int[] array = new int[n];
Random rand = new Random();
for (int i = 0; i < array.Length; i++)
{
array[i] = rand.Next(x, y + 1);
if (array[i] > 0 && array[i] % k == 0) { counter++; }
Console.WriteLine($"{i + 1}. {array[i]}");
}
Console.Write(Environment.NewLine);
if (counter > 0) { Console.WriteLine($"В массиве {counter} элементов, соответствующих заданному условию."); }
else { Console.WriteLine("В массиве нет элементов, соответствующих заданному условию."); }
Console.ReadKey();
}
}
}

Итак. Общий размер файла 1,5 = 1536 Мбайт. Размер буфера T 128 Мбайт. Значит, для передачи файла через этот буфер его потребуется заполнить 1536 / 128 = 12 раз. Получилось целое число, поэтому мы посчитаем время, которое требуется на шаги 1-6, и умножим его на 12.
Так как ничего не сказано о времени на закрытие соединения, будем считать, что на это время не тратится.
1) Устанавливаем соединение с А - 1 секунда
2) Принимаем от устройства А 128 Мбайт со скоростью 8 Мбайт в секунду - 128 / 8 = 16 секунд
3) Закрываем соединение с А
4) Открываем соединение с В - 4 секунды
5) Передаём устройству В 128 Мбайт со скорость 2 Мбайта в секунду - 128 / 2 = 64 секунды
6) Закрываем соединение с В
Итого: 1+16+4+64 = 85 секунд
85 * 12 = 1020 секунд = 17 минут.
ответ: 17 минут.