- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PASCAL 提高教程
第一讲 素数及其应用
一、什么是素数
素数,也叫质数,例如:2、3、5、7、11、13 等等。素数是这样定义的:若正整数p 恰好
只有 1及本身p 两个正因数,则p 称为素数。若正整数p 有多于两个正因数,则p 称为合数。
依定义,全体正整数按其正因数的多少可分成三类:
1、只有一个正因数;
2、全体素数:只有两个正因数;
3、全体合数:有多于两个的正因数。
所以1既不是素数,也不是合数。
二、素数的求法
1、根据定义的常规求法:
如果要判断数p 是否是素数,可将2 到p-1之间的数与p 进行试除,只要p 除以其中某个数
k 的余数为0,那么说明k 是p 的另一个因数,因此p 不是素数;反之,如果2 到p-1之间
所有的数都不能被p 整除,那么可以判断p 是一个素数。
程序:
Program Lt1_1;
Begin
Write(p );
ReadLn(p);
Fork : 2top-1do
Ifp modk 0Then
Begin
WriteLn(p,isnot aprimenumber !);
Halt;
End;
WriteLn(p,isaprimenumber !);
End.
2、一种改进的快速方法-筛法
给定正整数p 后,我们可以提供一种可以求不大于p 的所有的素数的方法。
假定p 50,将2 到50之间的整数按顺序排列如下:
2 3 4 5 6 7 8 9 10 11 12 14 15 16 17
18
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
依次划去2、3、5、7 的倍数,数表中没有被划去的数即为不大于50 的素数。
程序:
Program Lt1_2;
Constp 50;
Var a :Array[1..p]ofBoolean;
i,j,k :Integer;
Begin
Fillchar(a,Sizeof(a),True);
For i : 2toTrunc(Sqrt(p)) do
Ifa[i]Then
Forj : 2top div ido
a[i*j] : False;
For i : 2top do
Ifa[i]ThenWrite(i:5);
End.
三、应用举例
1.从小到大找出5个素数,使后面的数比前面的数都大12.(答案:5,17,29,41,53)
2.哥德巴赫猜想:任何大于2 的偶数,都可以写成两个素数的和的形式,例如:18 5+13。
满足条件的表达式不一定是唯一的,例如:10 3+7 5+5 7+3。其中我们将3+7 与7+3两种
写法认为是重复的,因此 10有2 种不重复的分解方法。请你编一个程序,对于键盘输入的
一个大于2 小于1000 的偶数,输出所有满足要求的不重复的表达式。
3.分解质因数:任意一个合数,均可唯一表示为素数的乘积,例如:6 2*3,100 2*2*5*5。
现在由键盘输入一个不超过5000 的合数p,请编一个程序,将p 表示成为素数的乘积的形
式。
4. “漂亮数”:一个自然数,若它的质因数至少是两重的 (相同质因数的个数至少两个,如
36 22*3 2),则称该数为 “漂亮数”,请编程序找出100 以内的 “漂亮数”。
第二讲 字符串及其应用
字符串是TurboPascal 中有效的,应用广泛的数据类型,下面我们将通过例题学习关于字符串
的一些标准过程和函数.
常用的字符串标准函数和过程
〖例3.1〗编一个程序,从键盘上输入一个算术表达式,判别该表达式中,左圆括号与右圆括号
是否正确配对,如正确,打印YES,否则打印NO.
①由于算术表达式中可以包含有数字,运算符,括号等,所以可以将它们作为字符串看待,用一
个字符串变量来存储.同时,可以将字符串当成一个一维的字符型数组进行处理.
②算术表达式中括号匹配的检测方法:设一个计数器T为0,将表达式串从向右扫描,当遇到左
括号(时将T 加1,遇到右括号时将T 减 1,直到结束,若期间T 小于0 或扫描结束后T 不为0,
都表明
文档评论(0)