Другие языки программирования и технологии
программа Паскаль
помогите написать программу(в паскале): задача такая: дано число n(оно является натур. числом). нужно определить является оно простым или сложным n- число i- переменная цикла F- вспомогательный флаг помогите!
Уж эта тема до того изъедена, что с закрытыми глазами можно найти решение на любом языке
Вот на Паскале, например
http://bpascal. ru/download/desc/603.php
(убрать пробел)
Вот на Паскале, например
http://bpascal. ru/download/desc/603.php
(убрать пробел)
Если тупым перебором, то так:
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)) используется как ограничитель циклов потому, что большие делители не имеет смысла проверять… (Математика, однако ;-)
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)) используется как ограничитель циклов потому, что большие делители не имеет смысла проверять… (Математика, однако ;-)
Ну нахрен не вписалось с нуля проги за тебя писать) )
Пиши свою версию кода и только потом уточняй детали
Когда запятые не срастутся -подскажем.
А с нуля -- нафиг-нафиг
Пиши свою версию кода и только потом уточняй детали
Когда запятые не срастутся -подскажем.
А с нуля -- нафиг-нафиг
ЛИТЕРАТУРУ - и ВПЕРЕД, Что вы все на кого-то надеетесь. ПРОГРАММИСТОМ Вам быть а никому другому!)))))))))))))
Циклически делить на все числа до числа, равного округленному корню из заданного
Но мне кажется есть более правильное решение.
Но мне кажется есть более правильное решение.
пиши на мыло договоримся
Мда я хз
Я всего лишь 10-классник
Я всего лишь 10-классник
Похожие вопросы
- А программы Паскаль, Бейсик, Жава, и другие они все переводятся в один и тот же машиный язык? (вопрос про обычный пк).
- Какую программу (Паскаль) использовать в учебных целях, чтоб была овместима с файлами от "Турбо Паскаль"? В которых
- Программа Паскаль.
- Кто хорошо знает программу ПАСКАЛЬ??плиз помогите)
- Программа Паскаль
- Помогите разобраться с написанием программы Паскале!
- Программа паскаль множества
- Напишите программу, паскаль, пожалуйста
- где у меня ошибка в программе? ( Паскаль не изучала, писала интуитивно :D )
- Программа паскаль, код внутри.