На вход программы поступает последовательность из
Входные данные.
В первой строке входных данных задаётся количество чисел N
Пример организации исходных данных во входном файле:
5
2
6
13
31
93
Пример выходных данных для приведённого выше примера входных данных:
4
В ответе укажите два числа: сначала значение искомой суммы для
Ответ:
Пояснение. Из 5 чисел можно составить
Произведение двух чисел делится
А. Оба сомножителя делятся
Б. Один из сомножителей делится
В. Ни один из сомножителей не делится
При вводе чисел можно определять, делится ли каждое из них на 62, 2 и 31, и подсчитывать следующие значения:
1) n62 — количество чисел,
2) n31 — количество чисел,
3) n2 — количество чисел,
Количество пар, удовлетворяющих условию А, можно вычислить по формуле
Количество пар, удовлетворяющих условию Б, можно вычислить по формуле
Количество пар, удовлетворяющих условию В, можно вычислить по формуле n2 · n31.
Поэтому искомое количество пар вычисляется по формуле
Приведём решение задачи на языке Pascal.
var
N: integer; {количество чисел}
a: integer; {очередное число}
n62, n31, n2: integer;
k62: integer; {количество требуемых пар}
i: integer;
f: text;
begin
n62:=0; n31:=0; n2:=0;
assign(f,'27989_A.txt');
reset(f);
readln(f, n);
for i := 1 to n do begin
readln(f, a);
if a mod 62 = 0 then
n62 := n62+1
else if a mod 31 = 0 then
n31:= n31 + 1
else if a mod 2 = 0 then
n2 := n2 + 1;
end;
k62 := n62*(n62-1) div 2 + n62*(N-n62) + n2*n31;
writeln(k62)
end.
В результате работы данного алгоритма при вводе данных из
Примечание.
Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём другое решение на языке Python.
f = open("27990_B.txt") # для файла A укажите его название
s = f.readlines()
n = int(s[0])
k = 0
k_0 = 0
k_62 = 0
k_2 = 0
k_31 = 0
for i in range(1, n + 1):
s[i] = int(s[i])
if s[i] % 62 == 0:
k_62 += 1
elif s[i] % 31 == 0:
k_31 += 1
elif s[i] % 2 == 0:
k_2 += 1
else:
k_0 += 1
k = k_62 * k_0 + k_31 * k_2 + k_62 * k_31 + k_62 * k_2 + (k_62 * (k_62 - 1)) // 2
print(k)

