电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 认证考试-> 软件水平考试
计算机等级考试二级vb常用算法:素数_软件水平考试
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 

  1、算法说明

  素数(质数):就是一个大于等于2的整数,并且只能被1和本身整除,而不能被其他整数整除的数。

  判别某数m是否是素数的经典算法是:

  对于m,从I=2,3,4,……,m-1依次判别能否被I整除,只要有一个能整除,m就不是素数,否则m是素数。

以下是引用片段:
  Private Function sushu(ByVal n As Long) As Boolean
  Dim i As Long
  For i = 2 To n - 1
  If (n Mod i) = 0 Then Exit For
  Next I
  If I=n then sushu=True
  End Function


  很显然,实际上,我们可以改进上面

  For i = 2 To n – 1

  为:

  For i = 2 To int(sqr(m))

  这样可以很好的提高效率。

  以上判断是否为素数的代码务必识记!

  应用举例

  求100-200之内素数。

以下是引用片段:
  Private Sub Command1_Click()
  Dim j As Integer
  For j = 100 To 200
  If sushu(j) = True Then
  Print j
  End If
  Next j
  End Sub


  解题技巧

  识记判断素数的算法过程,根据题意,灵活调用!

  实例说明

  编程题

  找出10000以内所有可以表示为两个平方数和的素数。

  思路:

  首先找10000以内的所有素数,对于每个素数判断其是否可以表示为两个平方数之和(即对于任意小于该素数shu的数I,如果I和shu-I均为平方数,则说明其可以表示为两个平方数之和。)

  判断数I是否为平方数的方法:sqr(i)=int(sqr(i))

以下是引用片段:
  Private Sub Command1_Click()
  Dim j As Integer
  Dim m As Long, n As Long
  For j = 2 To 10000
  If sushu(j) = True Then
  If pf(j, m, n) = True Then
  List1.AddItem j & "=" & m & "+" & n
  End If
  End If
  Next j
  End Sub
  Private Function pf(ByVal shu As Long, m As Long, n As Long) As Boolean
  Dim i As Long
  For i = 1 To shu - 1
  If (Sqr(i) = Int(Sqr(i))) And (Sqr(shu - i) = Int(Sqr(shu - i))) Then
  pf = True
  m = i
  n = shu - i
  Exit Function
  End If
  Next
  End Function

  2、实战练习

  1) 补充代码

  下列程序的功能是:查找四位正整数中的超级素数。超级素数的定义为:当一个素数从低位到高位依次去掉一位数后剩下的数仍然是素数,则此数为超级素数。如数2333、233、23、2均为素数,所以2333为超级素数。

以下是引用片段:
  Option Explicit
  Private Sub Command1_Click()
  Dim I As Integer, flg As Boolean
  For I = 1001 To 9999 Step 2
  Call sup_prime(I, flg)
  If flg Then
  Debug.Print I
  End If
  Next I
  End Sub
  Private Sub sup_prime( (1) , F As Boolean)
  Dim p As Integer
  F = True
  Do While N > 0
  If prime(N) Then
  (2)
  Else
  (3)
  Exit Sub
  End If
  Loop
  End Sub
  Public Function prime(p As Integer) As Boolean
  Dim k As Integer
  If p = 1 Then
  Exit Function
  Else
  For k = 2 To Sqr(p)
  If p Mod k = 0 Then Exit Function
  Next k
  (4)
  End If
  End Function


  2) 编程题(2004春上机试卷03)

  随机生成15个两位正整数,从中找出所有的素数,并记下它是第几个数,再找出其中最大的素数,并给出它的位置。
vb


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·visualbasic移除form右上方之『x』按钮_visualbasic教程
·草根的进化php语言php语言发展简史_php文摘
·如何在windows xp 家庭版中安装iis_windows xp
·php5.2+apache2.2+bugfree1.0的安装_php教程
·photoshop简单给广告mm上唇彩教程_photoshop教程
·photoshop纠正歪斜照片方法和技巧_photoshop教程
·用fireworks自带图案纹理制作特效字_fireworks教程
·autocad基本修改命令_autocad教程
·编辑多线_autocad教程
·对象清理_autocad教程

最新文章
·photoshop抠图合成特效:飞出照片相框_photoshop教程
·fireworks给图片做锐化马赛克特效_fireworks教程
·安装jdk 就可同时运行php和java?_php文摘
·用photoshop调怀旧照片_photoshop教程
·photoshop给图片增加透明棋盘特效_photoshop教程
·计算机等级考试二级vb常用算法:累加_软件水平考试
·计算机等级考试二级vb常用算法:最值_软件水平考试
·计算机等级考试二级vb常用算法:素数_软件水平考试
·计算机等级考试二级vb常用算法:进制转化_软件水平考试
·计算机等级考试二级vb常用算法:约数因子_软件水平考试


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号