题目描述
Description
小王对既是素数又是回文的数特别感兴趣。比如说151既是素数又是个回文。现在小王想要你帮助他找出某个范围内的素数回文数,请你写个程序找出 a 跟b 之间满足条件的数。(5 <= a < b <= 100,000,000);
输入描述
Input
输入a和b(5 <= a < b <= 100,000,000)
输出描述
Output
按从小到大输出a,b之间所有满足条件的素数回文数
样本输入
Input example
5 500
样本输出
Output example
5
7
11
101
131
151
181
191
313
353
373
383
本来用筛选法建立素数表,再在素数表内判断回文数,但是。。。。,一直runtime error。查了资料,好像是数组太大了,num[100000000]导致内存不足。
网上还有个提示,10亿内的回文素数最大只到九百多万,据此更改数组大小为1千万,并把数组声明为stastic,或在函数外把数组声明为全局变量,但是。。。。还是runtime error,放弃挣扎。。。
直接在网上搜答案,发现有个答案是用一般方法,先判断回文数,再判断这个数是否素数,(判断素数方法是判断这个数能否被2~n-1这些数整除)。我想:试试吧。于是,把这段常规代码打出来,再加上先前网上那个提示,进一步优化代码。
结果accept。(后来分析,主要是得益于先判断回文数,再判断素数这个策略,它大大减少了运行时间,判断一个1千万内的数是否回文数好像最多只需10几步。)
标签:判断,素数,数组,Input,runtime,回文 来源: https://blog.csdn.net/m0_59296909/article/details/121189095
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。