计算机考试二级VB常用算法(3):排序

计算机考试二级VB常用算法(3):排序,第1张

计算机考试二级VB常用算法(3):排序,第2张

1.算法描述

质数(Prime number):是大于等于2的整数,只能被1和它本身整除,不能被其他整数整除。

判断一个数m是否是素数的经典算法是:

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

私有函数sushu(ByVal n为Long)为布尔值

暗淡我一样长

对于i = 2至n - 1

如果(n Mod i) = 0,则退出

接下来我

如果I=n,那么sushu=True

结束功能

显然,事实上,我们可以改进它。

对于i = 2至n–1

用于:

对于i = 2到int(sqr(m))

这样可以提高效率。

以上判断是不是质数的代码一定要背!

应用示例

求100-200内的质数。

私有子命令1_Click()

Dim j为整数

对于j = 100到200

如果sushu(j) = True,则

打印j

如果…就会结束

下一个j

末端接头

解决问题的技巧

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

示例描述

编程题(2002年春季计算机试卷04)

求10000以内所有可以表示为两个平方和的质数。

想法:

先找出10000以内的所有质数,判断每个质数是否可以表示为两个平方和(即对于任何比质数shu小的数I,如果I和Shu-I都是平方,就意味着可以表示为两个平方和。)

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

私有子命令1_Click()

Dim j为整数

Dim m一样长,n一样长

对于j = 2到10000

如果sushu(j) = True,则

如果pf(j,m,n) =真,则

列表1。AddItem j & "=" & m & "+" & n

如果…就会结束

如果…就会结束

下一个j

末端接头

私有函数pf(ByVal shu为Long,m为Long,n为Long)为布尔型

暗淡我一样长

对于i = 1至shu - 1

如果(Sqr(i) = Int(Sqr(i)))和(Sqr(shu - i) = Int(Sqr(shu - i)))那么

pf =真

m = i

n =舒一

退出功能

如果…就会结束

然后

结束功能

2.实践练习

1)补充规范(2002年春2 (7))

下面这个程序的作用是:求四位正整数中的超级素数。超级素数的定义是:当一个素数从较低的位置移到较高的位置后,仍是一个素数时,这个数就是超级素数。如2333,233,23和2都是质数,所以2333是超级质数。

选项显式

私有子命令1_Click()

Dim I为整数,flg为布尔

对于I = 1001到9999步骤2

调用sup_prime(I,flg)

如果flg那么

调试。打印I

如果…就会结束

接下来我

末端接头

Private Sub sup_prime( (1),F为布尔值)

将p标注为整数

F =真

当N > 0时执行

如果质数为N,则

(2)

其他

(3)

出口接头

如果…就会结束

末端接头

布尔型公共函数prime(p为整数)

将k标注为整数

如果p = 1,那么

退出功能

其他

对于k = 2至Sqr(p)

如果p Mod k = 0,则退出功能

下一个k

(4)

如果…就会结束

End
2)编程题(2004年春季计算机试卷03)

生成15个随机的两位正整数,从中找出所有的素数,并记下是哪个数,然后找出其中的素数,并给出它的位置。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 计算机考试二级VB常用算法(3):排序

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情