回文素数新.ppt

上传人:hyn****60 文档编号:70752374 上传时间:2023-01-27 格式:PPT 页数:18 大小:195.50KB
返回 下载 相关 举报
回文素数新.ppt_第1页
第1页 / 共18页
回文素数新.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《回文素数新.ppt》由会员分享,可在线阅读,更多相关《回文素数新.ppt(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、回文素数 了解回文数了解回文数v从左到右和从右到左是看一样的。v 例:1,11,121,12321,13531等 了解素数了解素数v指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。v例:2,5,11等是素数 4,6,9等不是素数回文素数回文素数v从左到右和从右到左是看一样的素数。v例:1,2,5,151等题目题目v找出范围a,b(5=a b=100,000,000)间的所有回文质数;v限时:0.1s大致思路大致思路v思路一:先找计算出所有的回文数,再在找到的回文数中找素数;v思路二:先筛选出所有的素数,再在所找到的素数中找回文数。选择相对优化的思路选择相对优化的思路v

2、选择方案一:只需按照规律先计算出回文数,再在回文数中找素数,此方案须遍历的数的个数为回文数的个数(小于总共数的个数);v选择方案二:需先要遍历找所有的数找素数,再找回文数v因此:不难看出,方案一效率更高些。进一步优化进一步优化v任意偶数长度的回文数都不可能是素数(除11以外),因为它都能被11整除,而11却是素数;v除2外,所有偶数均不是素数。例程(变量部分):例程(变量部分):vvarv a,b,i,j,k,l,t:longint;v T:text;v d:array1.10000of longint;例程(计算回文数部分):v d1:=5;d2:=7;d3:=11;(说明:由于一二位的回(

3、说明:由于一二位的回 文素数只有这三个,文素数只有这三个,所以直接赋值)所以直接赋值)v t:=3;(控制数组坐标变量)例程(计算回文数部分):vfor i:=1 to 9 do(求三位回文数)(求三位回文数)v for j:=0 to 9 dov beginv inc(t);v dt:=i*101+j*10;v end;例程(计算回文数部分):vfor i:=1 to 9 do(求五位回文数)(求五位回文数)v for j:=0 to 9 dov for k:=0 to 9 dov beginv inc(t);v dt:=i*10001+j*1010+k*100;v end;例程(计算回文数

4、部分):vfor i:=1 to 9 do(求七位回文数)(求七位回文数)v for j:=0 to 9 dov for k:=0 to 9 dov for l:=0 to 9 dov beginv inc(t);v dt:=i*1000001+j*100010+k*10100+l*1000v end;例程(找素数部分):v for i:=4 to t do(从四开始原因:前面三个 已经是回文素数,分别是5,7,11)v for j:=2 to trunc(sqrt(di)dov if di mod j=0 thenv beginv di:=0;v break;v end;例程(找出合题意的回

5、文素数部分):vfor i:=1 to t dov if(a=di)and(di=b)thenv writeln(f,di)v elsev break;例程(全1)vProgram aa;vvarv a,b,i,j,k,l,t:longint;v d:array1.10000of longint;v f:text;vbeginv assign(f,pprime.in);v reset(f);v readln(a,b);v close(f);v d1:=5;d2:=7;d3:=11;v t:=3;v for i:=1 to 9 dov for j:=0 to 9 dov beginv inc(t

6、);v dt:=i*101+j*10;v end;v for i:=1 to 9 dov for j:=0 to 9 dov for k:=0 to 9 dov beginv inc(t);v dt:=i*10001+j*1010+k*100;v end;v 例程(全2)vfor i:=1 to 9 dov for j:=0 to 9 dov for k:=0 to 9 dov for l:=0 to 9 dov beginv inc(t);v dt:=i*1000001+j*100010+k*10100+l*1000v end;v for i:=4 to t dov for j:=2 to trunc(sqrt(di)dov if di mod j=0 thenv beginv di:=0;v break;v end;v assign(f,pprime.out);v rewrite(f);v for i:=1 to t dov if(a=di)and(di=b)thenv writeln(f,di)v elsev break;v close(f);v vend.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com