For i = 1 To 100 For j = 2 To a(i) / 2 if a(i) Mod j = 0 Then Exit For Next j If j > a(i) / 2这是一个求素数的程序段的一部分既然j的取值是 j = 2 To a(i) / 2 为什么后面还有j > a(i) / 2功能:生成存放素数的数组 b
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/27 04:32:27
![For i = 1 To 100 For j = 2 To a(i) / 2 if a(i) Mod j = 0 Then Exit For Next j If j > a(i) / 2这是一个求素数的程序段的一部分既然j的取值是 j = 2 To a(i) / 2 为什么后面还有j > a(i) / 2功能:生成存放素数的数组 b](/uploads/image/z/7569330-42-0.jpg?t=For+i+%3D+1+To+100+For+j+%3D+2+To+a%28i%29+%2F+2+if+a%28i%29+Mod+j+%3D+0+Then+Exit+For+Next+j+If+j+%3E+a%28i%29+%2F+2%E8%BF%99%E6%98%AF%E4%B8%80%E4%B8%AA%E6%B1%82%E7%B4%A0%E6%95%B0%E7%9A%84%E7%A8%8B%E5%BA%8F%E6%AE%B5%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86%E6%97%A2%E7%84%B6j%E7%9A%84%E5%8F%96%E5%80%BC%E6%98%AF+j+%3D+2+To+a%28i%29+%2F+2+%E4%B8%BA%E4%BB%80%E4%B9%88%E5%90%8E%E9%9D%A2%E8%BF%98%E6%9C%89j+%3E+a%28i%29+%2F+2%E5%8A%9F%E8%83%BD%EF%BC%9A%E7%94%9F%E6%88%90%E5%AD%98%E6%94%BE%E7%B4%A0%E6%95%B0%E7%9A%84%E6%95%B0%E7%BB%84+b)
For i = 1 To 100 For j = 2 To a(i) / 2 if a(i) Mod j = 0 Then Exit For Next j If j > a(i) / 2这是一个求素数的程序段的一部分既然j的取值是 j = 2 To a(i) / 2 为什么后面还有j > a(i) / 2功能:生成存放素数的数组 b
For i = 1 To 100 For j = 2 To a(i) / 2 if a(i) Mod j = 0 Then Exit For Next j If j > a(i) / 2
这是一个求素数的程序段的一部分
既然j的取值是 j = 2 To a(i) / 2
为什么后面还有j > a(i) / 2
功能:生成存放素数的数组 b
将数组 b 的元素个数存入变量 num 中(所有变量均已定义)
For i = 1 To 100
For j = 2 To a(i) / 2
If a(i) Mod j = 0 Then Exit For
Next j
If j > a(i) / 2 Then
num = num + 1
b(num) = a(i)
End If
Next i
For i = 1 To 100 For j = 2 To a(i) / 2 if a(i) Mod j = 0 Then Exit For Next j If j > a(i) / 2这是一个求素数的程序段的一部分既然j的取值是 j = 2 To a(i) / 2 为什么后面还有j > a(i) / 2功能:生成存放素数的数组 b
重点需要理解内循环的含义:
判断a(i)是否素数,只要用2 ...a(i)/2的数能除尽,就不是素数,也就是说,执行Exit For 跳出内循环的数a(i)肯定不是素数i!此时的就j肯定不超过a(i)/2
如果一个数a(i),用2 ...a(i)/2的所有数相除,都不能除尽,该数肯定是素数,分析一下此时内循环在循环终止时的操作,当j=a(i)/2,满足循环条件执行循环内语句,返回循环头,j自动增1,即j=1+a(i)/2.因此,只要j>a(i)/2,a(i)就是素数.
f语句意为:只要j能够除尽i,就退出内循环.如果