求一亿以内的回文质数(素数)
求一亿以内的回文素(质)数
先求质数再判断回文,效率低下;所以先构造回文数,再判断质数。
偶数位的回文数都能被11整除。所以,偶数位的回文数除了11都是合数。
观察偶数位的回文数,提取所有奇数位的数字,与提取所有偶数位的数字,正好是相反的顺序。
因此,偶数位数和等于奇数位数和,从而差等于0,而0能被11整除,因此这个回文数,可以被11整除
例:1331 13 31
或者
an…a2a1a1a2…an.然后可将其改写(首尾两两依次配对):an...a2a1a1a2...an=an*(10^(2n-1)+1)+...+a2*(10^(2*2-1)+1)*10^(n-2)+a1*(10^(2*1-1)+1)*10^(n-1)
可以看到求和的每一项均有因式10^(2k-1)+1
而该因式又含有因式10+1=11,故和是11的倍数。
一个k位数,可以构造出一个奇数位的回文数。比如13,可以构造131;189可以构造18981.所以100000000内的只要从1构造到9999即可。
import java.util.ArrayList;public class 一亿以内的回文质数 {public static ArrayList<Integer> list = new ArrayList<Integer>(); public static void main(String[] args) {list.add(11);for (int i = 2; i < 100; i++) {int tmp = i / 10, sum;for (sum = i; tmp != 0; tmp /= 10) {sum = sum * 10 + tmp % 10;}bool(sum);}System.out.println(list);}public static void bool(int n){int sqrt = (int) Math.sqrt(n+0.5);for(int i:list){if(n%i==0){return ;}else if(i>sqrt){return ;}}list.add(n);return ;}}
求一亿以内的回文质数(素数)相关推荐
- 1亿以内素数的个数_1亿以内的回文质数
今天下午看到这么一个题 找出 1 亿以内的回文质数 很自然的思路就是素数筛,然后验证回文性质 #include #include #include #define TOTAL 100000000 us ...
- 回文质数(洛谷-P1217)
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
- 求1-1000以内的回文素数。回文素数指的是这个数既是回文数又是素数。
求1-1000以内的回文素数.回文素数指的是这个数既是回文数又是素数. 题目:求1-1000以内的回文素数.回文素数指的是这个数既是回文数又是素数. 程序分析:回文数就是将一个数从左向右读是一样的.定 ...
- P1217 回文质数(打表)
2020.2.9更新,修改打表程序,用上freopen("Table.txt", "w", stdout);程序更加简洁 题目描述 因为151既是一个质数又是一 ...
- P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表)
P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表) 一:埃氏筛(时间复杂度--nloglogn) 重点:一个数x是合数,则它的倍数也是合数 //用埃氏筛生成 ...
- P1217 回文质数
题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b] (5 <= a < b <= 100 ...
- C/C++实现回文质数(超详解)【沈七】
C/C++实现回文质数(超详解) 题目链接 题目描述 输入样例 **题解部分** **完整代码** **未完待续** 参考文章 唤我沈七就行嘿嘿. 大一软件工程在读. 菜鸡蒟蒻想在博客中记录一些算法学 ...
- 洛谷 - P1217 [USACO1.5]回文质数 Prime Palindromes(欧拉线性筛+数论小知识)
题目链接:点击查看 题目大意:给出一个a和b,求出区间[a,b]中所有回文质数,回文质数指的是一个数既是回文数也是质数 题目分析:首先质数好判断,我们只需要用欧拉筛预处理打好表即可,判断回文数我们也只 ...
- 洛谷P1217 回文质数
题目描述 因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围 [a,b] (5 \le a < b \le 100,000 ...
- [USACO1.5]回文质数 Prime Palindromes
题目描述 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,000 ...
最新文章
- 通知提示SCPromptView
- easyui validate 后 使用ajax提交
- 计算机音乐刚好遇见你乐谱,刚好遇见你曲谱_刚好遇见你乐谱
- C语言声明数组变量时,在什么情况下,可不指定数组大小
- java 开发人员工具_每个Java开发人员都应该知道的10个基本工具
- mysql: you can't specify target table 问题解决
- 算法知识点——(3)监督学习——SVM
- matlab 模型运行速度,用matlab求解超效率DEA模型运行结果的辨认
- springboot下使用拦截器和过滤器
- JavaScript获取当前url路径
- java毕业设计万科集团社区管理系统mybatis+源码+调试部署+系统+数据库+lw
- Linux 多线程 Pthread 互斥量
- 计算机二级主要是学什么,计算机二级考试内容是什么
- 3_01_GLib库入门与实践_测试框架
- 文件系统源码分析之buffer.c
- 代理记账公司怎样找客户?教你一个简单又有效的方法
- 【无标题】区块链的实际应用场景NO.1--助力疫情防控舍我其谁
- 使用WTSGetActiveConsoleSessionId()的VISTA服务与桌面交互
- bzoj 4244: 邮戳拉力赛 动态规划
- 【ReID】【代码注释】OSNet模型 deep-person-reid/torchreid/models/osnet.py