问题
填空题
下列程序是判断一个整数(>=3)是否为素数,请补充完整。 Dim n As Integer n=InputBox("请输入一个整数(>=3)") k=Int(Sqr(n)) i=2 swit=0 While i<=k And swit=0 If n Mod i=0 Then 【】 Else 【】 End If Wend If swit=0 Then Print n;"是一个素数。" Else Print n;"不是一个素数。" End If
答案
参考答案:swit=1
解析:素数是只能被1和本身整除的正整数,在本题的程序中,swit是一个标志变量,如果“swit=0”,则表示n不能被整除;如果能被一个整数整除,则swit变为1; While循环执行的条件有两个,一个是“I < = k”,另一个是“swit=0”,必须两个条件同时成立才执行循环,当I>k时,显然不必再检查n是否能被I整除;而如果“swit=1 ”,则表示n已被整除,肯定不是素数,也不必检查了。 只有“I<=k”和“swit=0”两者同时成立时才需要检查“n是否为素数”,循环只有一个判断操作,即判断n能否被I整除,如果不能,则I=I+1。以便为下一次判断作准备。