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

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

Найдите первое простое число, которое больше, чем А. Проверьте результат для А=48.
Доброго времени суток.

Вот еще одно решение.

{
найти следующее за заданным простое число
}

program FindSimple;
var
i, N : Integer;
Found : Boolean;
begin
N := 48; { начальное число }
Found := False;
while not Found do begin
N := N + 1; { берем следующее число }
Found := True; { предположим, оно простое }
{ простое число делится на 1 и само себя следовательно, }
{ если найдем другой делитель - оно не простое }
for i:=2 to Trunc(Sqrt(N)) do { перебор возможных делителей }
if N mod i = 0 then begin { нашелся делитель }
Found := False; { число не простое }
Break; { пректатить дальнейший поиск }
end;
end;
WriteLn(N); { выведем на печать }
Readln; { чтобы увидеть результат }
end.

Замечание по предыдущему решению. Цикл перебора чисел для поиска делителей нет смысла делать до N-1 - лишние итерации. Достаточно до целой части корня квадратного из проверяемого числа.

Удачи!
АД
Александр Дунаев
59 612
Лучший ответ
паскаль давно забыл, но поидее простые числа это ж целые, знач напишы тупо А+1 и выведи ответ)
Программу, конечно, не напишу, но вот с алгоритмом может помогу. х-переменная, которая будет принимать значение простого числа. Задаем цикл, который будет присваивать переменной х значения от А до какого нибудь большого числа с шагом 1. Так же нужна переменная у, которая будет принимать значения от 2-х до а-1. Далее делим х на у через оператор mod (х mod у) . Если результат равен 0, то х вывести на экран, в противном случае делить на следующее число. Собрать весь этот моразм в одну прогу тяжело, но вполне возможно. Желаю удачи.
Dyha Rap Woyska
Dyha Rap Woyska
3 107
Program Prost_Chisla;
Var A: integer;
Go: Boolean;

function SimpleDigits(a: integer): boolean;
var i: integer;
begin
SimpleDigits:= TRUE;
for i:=2 to a-1 do
if (a mod i = 0) then
Begin
SimpleDigits:=FALSE;
Break;
end;
end;

Begin
A:=48;
Go:= TRUE;
While(Go) do
Begin
inc(A);
if (SimpleDigits(A)) then Break;
End;
WriteLn(A); //выводим число.
end.