vb判断素数的方法,这个答案我看不懂,谁能帮忙解释一下,解释的好我会追加的
发布网友
发布时间:2022-06-02 12:19
我来回答
共1个回答
热心网友
时间:2023-10-19 10:25
素数的定义:只能被1和自身整除的自然数,叫做素数。
利用这个素数的特征,判断一个自然数N是否素数的方法:就用2,3,4,....,N-1这些自然数,一一地去除该自然数N,若过所有这些都不能整除那么N是素数,只有有一次整除N就不是素数。
你的程序里,是有一个数组a,该数组有100个元素,分别为a(1),a(2),...a(100),假设已经存有不同的自然数。现在是判断这100个自然数里有几个素数,如果是素数就保存到另一个数组 b里。
For k = 1 To 100 '构成循环1到100对100个元素,一一进行判断
flag = True '设置标记,假设该自然数为可以被I整除
i = 2 '从2开始去除某个自然数a(k)
'为了提好效率,整除到Int(a(k)/2),(即a(k)的一半)不要到a(i)-1,这个结论数学上有证明
'记得,整除到Int(Sqr(a(i))),效率更高,这个数学上也有证明
Do While i <= Int(a(k) / 2) And flag
If Int(a(k) / i) = a(k) / i Then 'Int(a(k) / i) = a(k) / i表示能被I整除,
flag = False '能被整除,就不是素数了,可以结束i循环了,设置标记
Else
i = i + 1 '如果不能整除,就继续下一次除法(用i+1去除)
End If
Loop
If flag = True Then '如果i循环结束,没有1次能整除,这时flag仍然保持True
num = num + 1 '说明该自然数是素数,b的下标增加1
b(num) = a(k) ‘在数组B里将该素数保存起来
End If
Next k