Консультация № 136687
13.05.2008, 19:15
0.00 руб.
0 2 2
Здравствуйте. Помогите, пожалуйста, написать программу: дано простое число P. Найти и вывести следующее за ним простое число.
Спасибо.

Обсуждение

Неизвестный
13.05.2008, 19:36
общий
это ответ
Здравствуйте, Ljubik!
Программа в приложении.

Удачи!

Приложение:
function is_simple(p:integer):boolean;{определяет, является ли число простым}var i : integer; res : boolean;begin i := 2; res := true; while res and (i < p) do begin res := p mod i <> 0; inc(i); end; is_simple := res;end;var p : integer;begin ReadLn(p); inc(p); while not is_simple(p) do begin inc(p); end; writeLn(p); ReadLn;end.
давно
Старший Модератор
31795
6196
13.05.2008, 19:39
общий
это ответ
Здравствуйте, Ljubik!

Смотрите приложение.
По программе:
- функция F рекурсивно вызывает сама себя с новыми значениями(от числа Р до 1) и возвращает значение TRUE если число простое;
- функция С рекурсивно вызывает сама себя c новым значением (от Р до следующего простого числа);
Программа выдает результат ввиде TRUE следующее простое число или FALSE когда число Р не простое.
Удачи!

Приложение:
var p:integer; {рекурсивная функция контроля простого числа} function F(x,y:integer):boolean; begin if y<1 then F:=false else if y=1 then F:=true else F:=F(x,y-1) and ((x mod y)>0); end; {рекурсивная функция поиска следующего числа} function C(z:integer):integer; begin if F(z,z-1) then C:=z else C:=C(z+1); end; begin {сама программа} write(‘P:‘);readln(p); if F(p,p-1) then writeln(F(p,p-1),C(p+1):7) else writeln(f(p,p-1)); end.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа