谁能帮我解释下pascal程序

vara,b,s,n:integer;yes:boolean;proceduresub(x:integer;varyy:boolean);vark,m:integer;b... var a,b,s,n: integer;
yes: boolean;
procedure sub(x: integer;var yy: boolean);
var k,m: integer;
begin
k:=trunc(sqrt(x));
for m:=3 to k do
if odd(m) then
if x mod m=0 then yy:=false;
end;
begin
b:=3;
repeat
a:=b;
repeat
yes:=true;
inc(b,2);
sub(b,yes);
if yes then s:=b-a;
until yes;
until s > = 10;
for n:=a+1 to a+10 do
write(n:6);
writeln;
readln
end.
展开
 我来答
hu01234122
2011-05-18 · 超过22用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:64.4万
展开全部
只能看出来那个是判断素数的函数... 其他的不知道是在求什么..
atmesphere
2011-05-18 · TA获得超过221个赞
知道答主
回答量:44
采纳率:100%
帮助的人:60.6万
展开全部
var a,b,s,n: integer;
yes: boolean;{定义变量}
procedure sub(x: integer;var yy: boolean);{过程}
var k,m: integer;
begin
k:=trunc(sqrt(x));{把b值的平方根的整数部分赋值给k}
for m:=3 to k do
if odd(m) then {如果m是奇数}
if x mod m=0 then yy:=false; {如果b能被m整除那么yes赋值为false,即此时b不为质数}
end;
begin
b:=3;{b的起始值}
repeat
a:=b;{继续运算,并记录此时b的初值}
repeat
yes:=true;
inc(b,2);{b:=b+2}
sub(b,yes);{因为b最开始的值为奇数,之后一直重复b:=b+2,故b始终为奇数。此处sub是为判断b是否为素数(即质数),如果是,yes赋值为true}
if yes then s:=b-a; {如果此时的b值为质数,那么s赋一个值,这个值是b与a(即为b的起始值)的差值}
until yes;{直到b为质数}
until s > = 10;{直到b成为质数,且b需要累加的值s大于等于10,且最接近10}
{运行完成后,a值为113,b值为127。}
for n:=a+1 to a+10 do
write(n:6);{输出a+1到a+10的值}
writeln;
readln
end.
程序思路:
求一个满足条件的最小正奇数(这个奇数大于1),输出它加上1到加上10之间的值
满足条件:这个正奇数加上一个2的倍数(这个数大于等于10)后成为质数,加上的这个2的倍数大于等于10且最接近10.
我其实不是很确定,因为这个可能是读程序题,也可能是用来测试的。不过希望LZ能看懂我语无伦次的叙述= =
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式