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

программа Паскаль

помогите написать программу(в паскале): задача такая: дано число n(оно является натур. числом). нужно определить является оно простым или сложным n- число i- переменная цикла F- вспомогательный флаг помогите!
Уж эта тема до того изъедена, что с закрытыми глазами можно найти решение на любом языке
Вот на Паскале, например
http://bpascal. ru/download/desc/603.php
(убрать пробел)
EK
Erkow Kazaly
76 473
Лучший ответ
Если тупым перебором, то так:

var N, I : Longint; F : Boolean;
begin
Write('Введите натуральное число N = '); ReadLn(N); if N < 0 then begin WriteLn('Введено не натуральное число... '); Halt; end;
F := True;
for I := 2 to Trunc(Sqrt(N)) do F := F and (N mod I = 0);
if F then WriteLn('Число простое. ') else WriteLn('Число составное. ');
end.

Можно немного изменить, чтобы цикл прекращался сразу после деления без остатка:

var N, I, EndI : Longint; F : Boolean;
begin
Write('Введите натуральное число N = '); ReadLn(N); if N < 0 then begin WriteLn('Введено не натуральное число... '); Halt; end;
I := 1; EndI := Trunc(Sqrt(N));
repeat
Inc(I); F := N mod I = 0;
until F or (I = EndI);
if Not F then WriteLn('Число простое. ') else WriteLn('Число составное. ');
end.

Можно ещё развивать тему для более быстрого перебора значений:
− проверять на делимость 2 и далее только нечётных чисел
− проверять на делимость 2, 3, 5 и далее чисел, отстоящих от предыдущего делителя попеременно на 2 и 4 с пропусками чисел оканчивающихся на 5…

Выражение Trunc(Sqrt(N)) используется как ограничитель циклов потому, что большие делители не имеет смысла проверять… (Математика, однако ;-)
СР
Сергей Рогов
86 515
Ну нахрен не вписалось с нуля проги за тебя писать) )

Пиши свою версию кода и только потом уточняй детали
Когда запятые не срастутся -подскажем.
А с нуля -- нафиг-нафиг
ЛИТЕРАТУРУ - и ВПЕРЕД, Что вы все на кого-то надеетесь. ПРОГРАММИСТОМ Вам быть а никому другому!)))))))))))))
Циклически делить на все числа до числа, равного округленному корню из заданного
Но мне кажется есть более правильное решение.
Сергей Любимов
Сергей Любимов
25 952
пиши на мыло договоримся
Иван Анoшкин
Иван Анoшкин
1 069
Мда я хз
Я всего лишь 10-классник