В чём ошибка? Подскажите, пожалуйста
задача проста: нужно проверить простое или составное число по теореме Вильсона. до 13 работает. а потом нет.
задача проста: нужно проверить простое или составное число по теореме Вильсона. до 13 работает. а потом нет.
Код:
var
factorial: Uint64;
n, z, i: integer;
begin
write('n = '); readln(n);
writeln('считаем факториал числа n-1');
factorial := 1;
for i := 2 to n - 1 do
factorial := factorial * i;
writeln('(n-1)! = ', factorial);
begin
writeln('проверяем:');
z := factorial + 1;
if z mod n = 0 then writeln('остаток = 0 => n - простое число')
else
begin
writeln('остаток ≠0 => n - составное число');
end;
end;
end.