Посчитать четные и нечетные цифры числа

Задача: 

Написать программу, подсчитывающую количество четных и нечетных цифр в числе.

Описание переменных: 

even - количество четных цифр;
odd - количество нечетных цифр.

Алгоритм решения задачи: 
  1. Если число делится без остатка на 2, значит последняя цифра четная (увеличиваем переменную even). Иначе - нечетная (тогда odd + 1).
  2. Избавляемся от младшего разряда в числе: операция div на 10.
Программа на языке Паскаль: 

var	
	a: integer;
	even,odd: byte;
begin
	readln(a);
	even := 0;
	odd := 0;
	while a > 0 do begin
		if (a mod 2) = 0 then
			even := even + 1
		else
			odd := odd + 1;
		a := a div 10;
	end;
	writeln('even: ', even);
	writeln('odd: ', odd);
end.

Комментарии

Зачем надо избавляться от

Зачем надо избавляться от меньшего разряда в числе?

Мой вариант

Uses 
sysutils;
 
Var 
  s: string;
  i,odd,even,k: byte;
Begin
  readln(s);
  For i:=1 To length(s) Do
    Begin
      k := strtoint(s[i]);
      If k Mod 2=0 Then
        even := even+1
      Else
        odd := odd+1;
    End;
  write('Odd-',odd,' Even-',even);
End.

У вас ошибка. Ведь когда

У вас ошибка. Ведь когда деление идёт на два, там могут присутствовать нули, а нуль как известно нейтральное число так что нужно доработать программу, видимо вы её не учли! Пример: Вводим 25000 он говорит 4 чётных 1 нечётное хотя там всего 1 чётное 1 нечётное.

Четность в теории чисел

Четность в теории чисел определяется как способность числа нацело делиться на два.

Нуль делится нацело (0 частное, 0 остаток), поэтому относится к четным числам.