3.1.2程序实现

上传人:cn****1 文档编号:568774359 上传时间:2024-07-26 格式:PPT 页数:12 大小:432.50KB
返回 下载 相关 举报
3.1.2程序实现_第1页
第1页 / 共12页
3.1.2程序实现_第2页
第2页 / 共12页
3.1.2程序实现_第3页
第3页 / 共12页
3.1.2程序实现_第4页
第4页 / 共12页
3.1.2程序实现_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《3.1.2程序实现》由会员分享,可在线阅读,更多相关《3.1.2程序实现(12页珍藏版)》请在金锄头文库上搜索。

1、哥德巴赫猜想简述 所有的大于所有的大于2的偶数,都可的偶数,都可以表示为两个素数的和吗?以表示为两个素数的和吗? 简称简称 “1+1” 的问题的问题4=2+2, 63+3,85+3,10=7+3,12=7+5,14=11+3, 哥德巴赫猜想貌似简单,要证明它却着实不易,成为数学中一个著哥德巴赫猜想貌似简单,要证明它却着实不易,成为数学中一个著名的难题。名的难题。 1966年,我国年轻的数学家陈景润年,我国年轻的数学家陈景润 解决了其中的一部解决了其中的一部分问题(分问题(1+2 )。)。循环应用(素数)l判断一个数a(a2)是否为素数l求3-100之间的所有素数l 宜阳一高宜阳一高:赵志敏ST

2、ART判断一个数是否是判断一个数是否是2的倍数的倍数a=Var(inputbox(“ ”)IF a mod 2 =0 then print a ;“是是2的倍数的倍数”End if判断一个数是否是判断一个数是否是3的倍数的倍数a=Var(inputbox(“ ”)IF a mod 3 =0 then print a ;“是是3的倍数的倍数”End if判断一个数判断一个数a (a2)是否为是否为合数合数a=Var(inputbox(“ ”)IF a mod 2 =0 then print a;“是合数是合数”End ifIF a mod 3 =0 then print a;“是合数是合数” E

3、nd if需要循环吗?需要循环吗?循环体是什么?循环体是什么?循环何时结束?循环何时结束?IF a mod j=0 then print a;“是合数是合数” End ifFor j=2 to a-1Next ja=Var(inputbox(“ ”)IF a mod a-1 =0 then print a;“是合数是合数”End if程序捉虫:程序捉虫:判断一个判断一个a (a2)是否为合数是否为合数IF a mod j=0 then print a; “是合数是合数”End ifFor j=2 to a-1Next ja=Var(inputbox(“ ”)程序有问题吗?程序有问题吗?程序输出

4、的结果将是什么?程序输出的结果将是什么?若若 a=8,程序输出什么?程序输出什么?8 是合数(j=2时)8 是合数(j=4时)若若 a=18,程序输出什么?程序输出什么?18 是合数(j=2时)18 是合数(j=3时)18 是合数(j=6时)18 是合数(j=9时)若若 a=17,程序输出什么?程序输出什么?没有输出没有输出地窖:它山之石:它山之石:天然冰箱天然冰箱地窖地窖 地窖:天然冰地窖:天然冰箱,冬暖夏凉。是箱,冬暖夏凉。是农民存储粮食水果农民存储粮食水果蔬菜的好帮手。蔬菜的好帮手。 长时不用的地长时不用的地窖会沉积很浓的二窖会沉积很浓的二氧化碳,人冒然下氧化碳,人冒然下去可能会产生危险

5、。去可能会产生危险。 农民会先用一农民会先用一支点燃的蜡烛放下支点燃的蜡烛放下试探。取出蜡烛后,试探。取出蜡烛后,若没有熄灭,人才若没有熄灭,人才可以下去。可以下去。标记法:标记法:判断一个判断一个a (a2)是否为合数是否为合数For j=2 to a-1Next ja=Var(inputbox(“ ”)Flag=1End IF print a ;“是合数”IF a mod j=0 then Flag=0IF Flag=0 then print a; “是合数是合数”End IFSQR(a)判断一个判断一个a (a2)是否为素数是否为素数Else print a; “是素数是素数”End I

6、F程序还能优化吗?程序还能优化吗?(1)有必要除到)有必要除到a-1吗?吗?(2)有必要除到)有必要除到sqr(a)吗?吗?例如:例如:a=256 循环执行了几次循环执行了几次? 一票否决制一票否决制第第1次次:j =2 256 mod 20 flag=0 第第2次次:j =3 256 mod 30 第第3次次:j =4 256 mod 40 flag=0 第第4次次:j =5 256 mod 50 第第5次次:j =6 256 mod 60第第6次次:j =7 256 mod 70 第第7次次:j =8 256 mod 80 flag=0 第第15次次:j =16 256 mod 160 f

7、lag=0程序优化:判断一个程序优化:判断一个a (a2)是否为素数是否为素数 print a ;“是合数是合数”Flag=0For j=2 to SQR(a)Next ja=Var(inputbox(“ ”)Flag=1End IFIF a mod j=0 then IF Flag=0 then print a; “是合数是合数”End IFElse print a; “是素数是素数”End IFEnd IFIF a mod j=0 then Flag=0我们希望一但有整除情况,程序就我们希望一但有整除情况,程序就立即停止循环。但我们不知道第一立即停止循环。但我们不知道第一次整除出现在第几次

8、循环,所以次整除出现在第几次循环,所以ForNext 循环不能解决了。循环不能解决了。DoLoopj=1j=j+1until jsqr(a)or Flag=0程序整理:判断一个程序整理:判断一个a (a2)是否为素数是否为素数a=Var(inputbox(“”)Flag=1j=1Do j=j+1 IF a mod j=0 then Flag=0Loop until jsqr(a) or Flag=0IF Flag=0 then print a; “是合数是合数”Else print a; “是素数是素数”End IF程序扩展:打印程序扩展:打印3-100之间的所有素数之间的所有素数For a=

9、3 to 100Next aIF Flag=1 then print aEnd IF程序改错程序改错1:打印:打印1-1000之间的所有素数之间的所有素数For a=1 to 1000 Flag=1j=1Do j=j+1 IF a mod j=0 then Flag=0Loop until jsqr(a) or Flag=0IF Flag=1 then print a; End IFNext a程序填空:打印程序填空:打印3-100之间的所有素数之间的所有素数For a=3 to 100 qq=1j=1Do j=j+1 IF a mod j=0 then _Loop until jsqr(a) or _IF _then print a; End IFNext aFor a=3 to 100 flag=1j=1Do j=j+1 IF a mod j=0 then flag=0Loop while_IF flag=1 then print a; End IFNext a循环应用(素数)l判断一个数a(a2)是否为素数l求3-100之间的所有素数l 宜阳一高宜阳一高:赵志敏 END 关键词:关键词:l双重循环双重循环l 一票否决一票否决l标记法标记法

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号