PASCAL语句中的一个问题,麻烦知道的帮下忙
发布网友
发布时间:2024-10-03 09:52
我来回答
共1个回答
热心网友
时间:2024-10-30 09:23
repeat
while not(x in si) do x:=succ(x); // 如果x不在集合si中 就把x+1,直到x在集合中。
pr:=pr+[x];// 把x加入集合pr中
j:=x;
while j<=m do //这个循环是把集合si中所有x的倍数删掉
begin
si:=si-[j];
j:=j+x;
end;
until si=[ ]; //直到循环si为空结束
例如:m=10
循环第一次, x=2 删除2 4 6 8 10
pr={2}
si={3,5,7,9}
循环第二次,x=3,删除3,9
pr={2,3}
si={5,7}
循环第三次 x=5,删除 5
pr={2,3,5}
si={7}
循环第四次 x=7,删除7
pr={2,3,5,7}
si={}
结束循环。