Другие языки программирования и технологии

люди помогите написать прогу в паскале чтоб она запрашивала число и потом писала простое оно или нет, всю голову сломал

Программа:
var
N, D : Longint;
Max : Real;
begin
Write('Введите число: '); ReadLn(N);
if N < 0 then N := Abs(N);
if N = 0 then begin WriteLn('Это число не относится ни к простым ни к составным. '); Halt; end;
{ самые простые }
if (N = 1) or (N = 2) or (N = 3) or (N = 5) then begin WriteLn('Это простое число. '); Halt; end;
{ делимость на самые простые }
if N mod 2 = 0 then begin WriteLn('Это составное число. Делитель 2.'); Halt; end;
if N mod 3 = 0 then begin WriteLn('Это составное число. Делитель 3.'); Halt; end;
if N mod 5 = 0 then begin WriteLn('Это составное число. Делитель 5.'); Halt; end;
{ будем делить на все нечётные }
Max := Sqrt(N);
D := 7;
while D <= Max do
begin
if N mod D = 0 then begin WriteLn('Это составное число. Делитель ', D,'.'); Halt; end;
D := D + 2;
end;
WriteLn('Это простое число. ');
end.
Результат:
Введите число: 1234567
Это составное число. Делитель 127.
Введите число: 123456791
Это простое число.
АА
Андрей Артюхов
94 802
Лучший ответ
А зачем ломать? Существуют много алгоритмов поиса простых числ. Самы простой - это
проверить остаток от целочисленного деления числа на все числа до него. Если хоть на один остаток меньше данного то это число не простое.
for test=2 to n-1 do
if (n mod test )
У меня есть такой пример на С++, на любом языке алгоритм тот же, тебе только синтаксис переложить. Здесь с комментариями
//объявление переменных
int i, j, a;
//ввод числа
cout << "a = "; cin >> a;
//если число простое, выводится на экран
for (i=2; i<a;>(i/j))
cout << i << " ";
}