回文质数(洛谷) |
您所在的位置:网站首页 › 凝胶色谱适于分离什么 › 回文质数(洛谷) |
文章目录
一、P1217 回文质数 Prime Palindromes题目描述输入格式输出格式输入输出样例样例输入 #1样例输出 #1
提示
二、思考1.什么是回文质数?搜狗百科启发
2.步骤包括哪些?判断素数函数判断回文数检查位数
三、 补全主函数的优化
一、P1217 回文质数 Prime Palindromes
题目描述
因为 151 151 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 151 151 是回文质数。 写一个程序来找出范围 [ a , b ] ( 5 ≤ a < b ≤ 100 , 000 , 000 ) [a,b] (5 \le a < b \le 100,000,000) [a,b](5≤a for (d3 = 0; d3 int i; if(a==1) return 0; if(a%2==0) return 0; else { for(i=2;i*i//判定回文,不懂请参考数字反转 int sum=0; int k=n; while(n!=0) { sum=sum*10+n%10; n/=10; } if(sum==k)//判断是否回文 return 1; else return 0; } 这个很常见。 检查位数 int digit(int x) { if((1000 for(i=2;i*i int sum=0; int k=n; while(n!=0) { sum=sum*10+n%10; n/=10; } if(sum==k) return 1; else return 0; } int digit(int x)//检查位数 { if((1000 if(i==9999989) //如果到了这个数,就break break; if(digit(i)&&reverse(i)&&IsPrime(i))//否则判断是否回文和素数 printf("%d\n",i);//输出每个回文质数 } return 0; } 主函数的优化特判2之后,我们知道素数都是奇数,回文素数当然也不例外,所以在循环之前判断 l 的奇偶性,以便于在后面的循环中+2。至于下面的 if (i=9999989) break; 也可以不要,当初看别人写的题解,用着玩的。 下面这一行,也有讲究。 if(digit(i)&&reverse(i)&&IsPrime(i))调用这三个函数得的结果,可是有顺序的哈,不一样的话用时不同。运行试试
next |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |