欢迎来到天天文库
浏览记录
ID:38984244
大小:88.50 KB
页数:3页
时间:2019-06-23
《VB常用算法——素数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VB常考算法(三)素数:1、算法说明所谓素数是指只能被1和它本身整除的数。1)判断某数是否为素数。根据循环控制变量来判断。算法说明:根据素数只能被1和它本身整除的性质,我们可以使用循环依次判断2到n-1(或者Sqr(n))之间有没有被它整除的数,一旦有退出循环,退出循环后通过检验循环变量的值来判断是不是素数。即,当循环正常退出,循环变量的值等于n时,该数是素数;当循环提前退出,循环变量的值小于等于n-1,该数不是素数。程序代码如下:PrivateSubCommand1_Click()DimnAsInteger,iAsIntegern=Val
2、(Text1.Text)Ifn<1ThenMsgBox"请正确输入数据"Elsen=Val(Text1.Text)Fori=2Ton-1IfnModi=0ThenExitForNextiIfi=nThenMsgBoxn&"是素数"ElseMsgBoxn&"不是素数"EndIfEndIfEndSub2)判断某数是否为素数。根据标志位flg来判断。PrivateSubCommand1_Click()DimnAsInteger,iAsIntegerDimflgAsBooleanflg=Truen=Val(Text1.Text)Ifn<1ThenM
3、sgBox"请正确输入数据"Elsen=Val(Text1.Text)Fori=2Ton-1IfnModi=0Thenflg=FalseNextiIfflg=TrueThenMsgBoxn&"是素数"ElseMsgBoxn&"不是素数"EndIfEndIfEndSub3)使用函数过程。通过函数返回值来判断。PrivateFunctionisprime(nAsInteger)AsBooleanDimiAsIntegerisprime=TrueFori=2Ton-1IfnModi=0Thenisprime=FalseExitFunctionEn
4、dIfNextiEndFunction或者PrivateFunctionisprime(nAsInteger)AsBooleanDimiAsIntegerisprime=FalseFori=2Ton-1IfnModi=0ThenExitFunctionEndIfNextiisprime=TrueEndFunction2、实战练习1)完善程序算法说明:下列程序是查找四位正整数中的超级素数。所谓超级素数:当一个素数从低位到高位依次去掉一位数后剩下的数仍然是素数,则此数为超级素数。如数2332、233、23、2均为素数,所以2333为超素数。Op
5、tionExplicitPrivateSubCommand1_Click()DimiAsInteger,flgAsBooleanFori=1001To9999Step2Callsup_prime(i,flg)IfflgThenDebug.PrintiEndIfNextiEndSubPrivateSubsup_prime((1),fAsBoolean)DimpAsIntegerf=TrueDoWhilen>0Ifprime(n)Then(2)Else(3)ExitSubEndIfLoopEndSubPrivateFunctionprime(p
6、AsInteger)AsBooleanDimkAsIntegerIfp=1ThenExitFunctionElseFork=2ToSqr(p)IfpModk=0ThenExitFunctionNextk(4)EndIfEndFunction2)编程题热身:l如何在文本框中以5个一行的形式显示100~300之间的数值?l编写程序,输入数据范围m、n,求出介于m、n之间所有的素数,并按每行五个素数的形式输出到多行文本框中。实战:随机生成15个两位正整数,从中找出所有的素数,并记下它是第几个数,再找出其中最大的素数,并给出它的位置。程序运行界面如
7、图所示:
此文档下载收益归作者所有