Данным А1 А4 соотвествует круговая диограмма номер 2
program picaso; uses crt;
type vector=array[1..100] of integer;
var a:vector;
i,n,k,p:byte;
begin clrscr; Randomize;
writeln('n:');readln(n);
writeln('a:');readln(p);
for i:=1 to n do
begin
write('элемент ',i,' : ');
readln(a[i]);
end;
for i:=1 to n do
write(a[i],' ');
k:=0;
for i:=1 to n do
begin
if a[i] > p then inc(k);
end;
writeln('количество элементов массива, которые больше заданного числа',p,' : ',k);
end.
Решение задачи будет гораздо проще, если заметить, что остаток от деления шестнадцатеричного числа на 5 совпадает с остатком от деления на 5 его суммы цифр.
Действительно, доказываем по индукции:
- Для числа из одной цифры это тривиально: число из одной цифры совпадает со своей суммой цифр.
- Переход: пусть число из k цифр ...xyz дает такой же остаток при делении на 5, что и сумма цифр ... + x + y + z. Покажем, что число из (k + 1) цифры ...xyzt дает такой же остаток, что и сумма цифр ... + x + y + z + t: ...xyzt = 16 * ...xyz + t = 15 * ...xyz + (...xyz + t). Первое слагаемое делится на 5, второе по предположению дает такой же остаток, что и (... + x + y + z) + t, что и требовалось.
У любой перестановки сумма цифр такая же, так что и остатки от деления на 5 совпадают. Так что осталось найти сумму цифр исходного числа и найти остаток от деления её на 5, это и будет ответом.
Python 3:
digits = "0123456789abcdef"
n = input()
s = sum(digits.index(digit) for digit in n)
print(s % 5)