vb求素数

来源:百度知道 编辑:UC知道 时间:2024/09/20 19:53:48
比如说text1里有一个数要求小于该数的最小素数并把它放于text2里以下是答案但是我不懂请哪位高手给解释一下若我能理解定给加分,以前老师有教过宁外一种方法如果你能把它编出来并可行的话我给你加100分在此先谢谢了!
private function check(i as integer)as boolean
for j =2 to cint(sqr(i))+1
if i mod j =0 then
check=false
exit function
end if
next j
check =true
end function
private command1-click()
dim i as integer
i=text1.text
if i mod 2=0 tnen
i=i-1
else
i=i-2
end if
do until check(i)
i=i-2
loop
text2.text=i
end sub
我写错了是小与该数的最大素数

小于该数的最小素数肯定是2,根本不用编的。呵呵。
我给你个代码吧,保证你能看懂。
private sub command1_click()
dim i as integer, n as integer,j as integer
n=text1.text
for i=n to 2 step -1'从n开始倒着找
for j=2 to sqr(i)
if i mod j=0 then exit for '如果i是j的倍数,直接找下一个i,这时j没有循环完
next j
if j>sqr(i) then'如果j循环完了,说明i是找到的第一个素数
text2.text=i
exit for
end if
next i
end sub

shuoyizhi的注释已经很清楚了,不过这个程序有问题。

如果TEXT1.TEXT =3 想想看程序会怎么样?是不是把素数2给漏掉了?