Proc28. Описать функцию IsPrime($$N$$) логического типа, возвращающую True, если целый параметр $$N$$ ($$> 1$$) является простым числом, и False в противном случае (число, большее 1, называется простым, если оно не имеет положительных делителей, кроме 1 и самого себя). Дан набор из 10 целых чисел, больших 1. С помощью функции IsPrime найти количество простых чисел в данном наборе.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
program Proc28; Function IsPrime(N:Integer):Boolean; var i:integer; begin i:=1; IsPrime:=True; while (i<N/2) do begin Inc(i); if N mod i = 0 then begin I:=N; IsPrime:=False; end; end; end; var i,N,Res:Integer; begin Res:=0; for i:=1 to 10 do begin Write('N :'); Readln(N); if IsPrime(N) then Inc(Res); end; Writeln(Res); end. |
Другие задачи из раздела Proc можно посмотреть здесь.
Не люблю я досрочный выход… но при таком построении решения он прямо напрашивается :
Хотя если досрочный выход перенести в while то будет решение из шапки 🙂