Страница 1 из 1
Организация подпрограм. Простые числа (Pascal)
Добавлено: 11 мар 2007, 16:50
Justice
помогите решить задачу...
Дано натуральное число n. Выяснить, есть ли среди чисел n, n+1, 2n близнеци, т.е. простые числа, разница между которыми равняется двум. Опредилить процедуру, которая разрешает различать простые числа.
Re: Организация подпрограм. Простые числа (Pascal)
Добавлено: 12 мар 2007, 10:38
Хыиуду
http://forum.developing.ru/showthread.php?p=34426
А дальше - цикл от n до 2n-2: если n и n+2 - простые, вернуть да, если нет - вернуть нет.
Re: Организация подпрограм. Простые числа (Pascal)
Добавлено: 17 мар 2007, 22:46
Justice
К сожалению, нужно чтобы простые числа определяла не функция, а процедура...
Re: Организация подпрограм. Простые числа (Pascal)
Добавлено: 17 мар 2007, 23:49
Колядин Максим
К сожалению, нужно чтобы простые числа определяла не функция, а процедура...
Да... Кто же интересно тебе такое условие поставил?
Тебе советуют как лучше, потому что
функция, в отличии от
процедуры, всегда имеет результативное значение, а в данном случае - true если число простое, иначе false...
Код: Выделить всё
uses crt;
var result: boolean;
procedure simple(x:longint);
var i:longint;
begin
for i:=2 to x div 2 do
if x mod i=0 then begin
result:=false;exit; end;
result:=true;
end;
begin
clrscr;
simple(5);
if result then write('Простое') else write('Не простое!');
readkey;
end.
Re: Организация подпрограм. Простые числа (Pascal)
Добавлено: 19 мар 2007, 10:04
Хыиуду
Ох... ну можно еще упаковку сделать для этой функции, чтобы она стала процедурой. Вообще Паскаль, по-моему - один из редких современных языков, где функция и процедура - это разные вещи. Во всех остальных есть только функции, которые иногда могут возвращать пустое значение.
Ну да ладно, вот тебе упаковка:
procedure issimpleproc(x:integer; var res:boolean);
begin res:=issimple(x); end;