Выяснить, чему будет равен остаток от деления 2 в степени N на 10? - PascalABC.NET

Формулировка задачи:

Условие задачи - Чему будет равен остаток от деления 2 в степени N на 10? Входные данные Дано единственное неотрицательное число 0 ≤ N ≤ 10 в степени 9. Выходные данные Выведите ответ на задачу. НАПРИМЕР : введено 3 , ответ 8 . Введено 9 , ответ 2 etc Вот мой код , по моему мнению все работает отлично . Но отсылаю на тест и заваливаюсь на первом же тесте . И не могу понять почему ?
Program Olymp;
const c = 2; 
var res: real; b,i:integer; a :int64;
BEGIN
read(a);
//в степень
if (a >= 0) and (a <= 10000000000) then //смотрю на диапазон
     begin
b := 1;
while i < a do begin//возвожу в степень
        b := b * c;
        i := i + 1;
    end; 
    end;  
    res := b mod 10; //ищу остаток
   writeln(res);      
END.
Сам ресурс : http://codeforces.com/gym/100924/problem/A

Код к задаче: «Выяснить, чему будет равен остаток от деления 2 в степени N на 10? - PascalABC.NET»

textual
var
  b: integer;
  N: int64;
begin 
   readln(N);  
   b := 1;
    if N > 0 then 
    begin
      b := N mod 4;
      case b of
        0: b := 6;
        1: b := 2;
        2: b := 4;
        3: b := 8;
      end;
    end;    
  writeln(b);      
end.

14   голосов, оценка 3.714 из 5


СОХРАНИТЬ ССЫЛКУ