Другие языки программирования и технологии
помогите решить задачу на паскале
Найдите первое простое число, которое больше, чем А. Проверьте результат для А=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 - лишние итерации. Достаточно до целой части корня квадратного из проверяемого числа.
Удачи!
Вот еще одно решение.
{
найти следующее за заданным простое число
}
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 - лишние итерации. Достаточно до целой части корня квадратного из проверяемого числа.
Удачи!
паскаль давно забыл, но поидее простые числа это ж целые, знач напишы тупо А+1 и выведи ответ)
Программу, конечно, не напишу, но вот с алгоритмом может помогу. х-переменная, которая будет принимать значение простого числа. Задаем цикл, который будет присваивать переменной х значения от А до какого нибудь большого числа с шагом 1. Так же нужна переменная у, которая будет принимать значения от 2-х до а-1. Далее делим х на у через оператор mod (х mod у) . Если результат равен 0, то х вывести на экран, в противном случае делить на следующее число. Собрать весь этот моразм в одну прогу тяжело, но вполне возможно. Желаю удачи.
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.
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.
Похожие вопросы
- Помогите решить задачи по Паскалю
- помогите решить задачу на паскале: напечатать "столбиком" значения sin2, sin3, ..sin 20.
- Помогите решить задачу в паскале
- Помогите решить задачу на паскале
- Помогите решить задачу в паскале. Задание: Заменить в строке все вхождения "да" на "нет".
- Уважаемые!Помогите решить задачу по Паскалю,пожайлуста!
- Помогите решить задачу в паскале
- Помогите решить задачу (в паскале)!
- Помогите решить задачу в паскале, пожалуйста! !
- помогите решить задачу по Паскалю