Имеется множество, содержащее натуральные числа из некоторого диапазона. Сформировать два множества, первое из которых содержит все простые числа из данного множества, а второе – все составные — Pascal(Паскаль)

uses crt;
function Prost(a:longint):boolean;
var i:longint;
begin
if a=1 then Prost:=false
else
 begin
  Prost:=true;
  for i:=2 to round(sqrt(a)) do
  if a mod i=0 then Prost:=false;
 end;
end;
var m,m1,m2:set of byte;
    a,b,i,k:byte;
begin
clrscr;
repeat
writeln('Введите диапазон натуральных чисел от 0 до 255 a<b:');
readln(a,b);
until (a>=0)and(b>a)and(b<256);
m:=[];
for i:=a to b do
m:=m+[i];
m1:=[];
for i:=a to b do
if Prost(i) then m1:=m1+[i];
m2:=m-m1;
writeln('Исходное множество:');
for i:=a to b do
if i in m then
write(i,' ');
writeln;
writeln;
writeln('Первое множество-простые числа:');
k:=0;
for i:=a to b do
if i in m1 then
 begin
  write(i,' ');
  k:=1;
 end;
if k=0 then writeln('Простых чисел в исходном множестве нет!');
writeln;
writeln;
writeln('Второе множество-составные числа:');
for i:=a to b do
if i in m2 then
write(i,' ');
writeln;
writeln;
readln
end.
for i
write('Vvedite n=');
readln(n);
write(Prost(n));
readln
end.

Leave a Comment

+ 25 = 26