Contributor: SCOTT STONE              


Function CheckPrime(a : integer) : boolean;
Var
  x : integer;
  y : integer;
Begin
  y:=0;
  for x:=1 to (a div 2) do  {Only #s up to half of a can be factors}
  begin
    if (a mod x)=0 then y:=(y+1)
  end;
  if y=2 then checkprime:=true else checkprime:=false;
  if a=1 then checkprime:=true;
End;

You see, only prime numbers have exactly two factors, themselves and one.
With the exception of One.  Therefore you have a specific IF for the
number one.  One is prime, yet its only factor is one.  I think - Is one
prime or not?  Anyway, remove that line if it isn't, the function will work.