866. 回文素数

求出大于或等于 N 的最小回文素数。

回顾一下,如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数

例如,2,3,5,7,11 以及 13 是素数。

回顾一下,如果一个数从左往右读与从右往左读是一样的,那么这个数是回文数。

例如,12321 是回文数。

package com711;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class Solution866 {public int primePalindrome(int N) {List<Integer> list = getPalindrome(N);Collections.sort(list);return list.get(0);}public List<Integer> getPalindrome(int N) {List<Integer> list = new ArrayList<Integer>();// 10以内的特例for (int i = N; i < 10; i++) {if (isPrime(i)) {list.add(i);return list;}}int start = getMinStart(N);// 双数的判断for (int i = (int) Math.pow(10, start); i < 10000; i++) {int num = Integer.parseInt(i + "" + reverse(i));if (num >= N && isPrime(num) && num < 200000000) {list.add(num);break;}}for (int i = (int) Math.pow(10, start); i < 10000; i++) {for (int j = 0; j <= 9; j++) {int num1 = Integer.parseInt(i + "" + j + reverse(i));if (num1 >= N && isPrime(num1) && num1 < 200000000) {                  list.add(num1);return list;}}}return list;}public boolean isPrime(int n) {if (n == 1) {return false;}for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0) {return false;}}return true;}public String reverse(int n) {char[] chars = (n + "").toCharArray();int len = chars.length;for (int i = 0; i < len / 2; i++) {char temp = chars[i];chars[i] = chars[len - i - 1];chars[len - i - 1] = temp;}return new String(chars);}public boolean isHuiWen(int n) {char[] chars = (n + "").toCharArray();int len = chars.length;for (int i = 0; i < len; i++) {if (chars[i] != chars[len - i - 1]) {return false;}}return true;}public int getMinStart(int n) {String str = n + "";str = str.substring(0, str.length() / 2);return str.length() / 2;}public static void main(String[] args) {// TODO Auto-generated method stubSolution866 s = new Solution866();long start = System.currentTimeMillis();System.out.println(s.primePalindrome(85709140));long end = System.currentTimeMillis();System.out.println(end - start);}}

  本题最大的困扰是如果直接不找规律遍历的话,你肯定会超时。因此要用最快的方法,找到最近的回文数,去判断。

转载于:https://www.cnblogs.com/dongqiSilent/p/10847886.html

ARTS打卡计划第四周-ALGORITHM相关推荐

  1. ARTS打卡计划第四周-TIPS-自定义一个LikeFilter

    django-restframe-work的searchfilter,可以从search_fields 的一个或者多个字段中搜索,语法类似http://example.com/api/products ...

  2. ARTS打卡计划第二周-Share-使用java注解对方法计时

    现在有这样一种常见,系统中有一个接口,该接口执行的方法忽快忽慢,因此你需要去统计改方法的执行时间.刚开始你的代码可能如下: long start = System.currentTimeMillis( ...

  3. ARTS打卡计划第一周-Share-系统字典模块的设计

    在软件开发的过程,经常有一些类型的字段信息:性别.学历.职级.车辆类别.公司类型.结算类型等.这些字段有2个特征:1是字段可选的类型是有限,2是字段可能会变化,我们把这种字段描述为字段字段.  本篇文 ...

  4. ARTS打卡计划第六周

    Algorithms: https://leetcode-cn.com/problems/longest-palindromic-substring/ 中心扩展法首先考虑,当然看到有个动态规划,一直很 ...

  5. ARTS打卡计划第三周-Tips

    本周分享一个好用的小工具,java-faker:https://github.com/DiUS/java-faker,相应的python:https://github.com/joke2k/faker ...

  6. ARTS打卡计划第6周-REVIEW-超越编码的避免项目失败的软技能

    https://medium.com/@viral_shah/beyond-coding-soft-skills-to-avoid-project-failures-4ed7821fa93a 做项目中 ...

  7. ARTS打卡20-别轻视简约的JSON

    Algorithm做算法题,Review点评英文文章,Tip总结技术技巧,Share做技术分享.每周打卡一次,这就是ARTS打卡. 1. 做算法题 LeetCode58题. 最后一个单词的长度 题目描 ...

  8. 中信涂猪android抓包,玩卡计划 篇二:中信《鼠来宝》规则攻略,珠光宝气之后的活动!还记得去年的涂猪吗?...

    玩卡计划 篇二:中信<鼠来宝>规则攻略,珠光宝气之后的活动!还记得去年的涂猪吗? 2020-01-06 17:37:56 2点赞 9收藏 0评论 创作立场声明:1月6日活动即将开启,提前做 ...

  9. 佳能hdr_21天摄影打卡计划 5月15日主题:HDR

    0121天摄影打卡计划 5月15日主题:HDR 今天是21天打卡计划第17天,今天我们的打卡主题是:HDR. HDR,High-Dynamic Range,中文翻译为高动态范围图像,不是单指一种图像或 ...

最新文章

  1. CVPR2020行人重识别算法论文解读
  2. python numpy array最大长度_python 中 numpy array 中的维度
  3. HTTP Server Mock 从手工到平台的演变(二)
  4. java做台球时老是闪屏_电脑老是闪屏的原因和解决办法
  5. 语言课程设计超市售货_自闭症儿童家庭干预10个语言能力提升小技巧
  6. Google Guava多集
  7. matlab for循环不覆盖,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!...
  8. Django的认证系统(auth)
  9. 标量、向量、矩阵、张量
  10. PHP中利用Ffmpeg获得flv视频缩略图和播放时间
  11. 大数据开发笔记(十):Hbase列存储数据库总结
  12. mysql学习笔记 51_MySQL学习笔记(一)
  13. 两个平面的位置关系和判定方程组解_必修二数学课后题答案
  14. 编译工具链和交叉编译工具链简易说明
  15. 饿百零售开放平台,测试账号饿了么显示该商家还没有上传商品
  16. Java 强制删除文件或目录
  17. 设计一个家庭记账管理系统(Java)
  18. linux mysql 权限不够_linux提示权限不够怎么办
  19. C语言中char和char *a[]和char (*a)[]
  20. 用友系统客户端登录不上服务器,客户端不能登录服务器-用友U8

热门文章

  1. 【译】关于机器学习的11个开源工具
  2. 限制IP 访问 Oracle 的方法
  3. SharePoint 2007图文开发教程(6)---实现Search Services
  4. 总结八个好用的Python爬虫技巧
  5. Ubuntu安装.run文件
  6. DPM2007轻松恢复Exchange邮件,DPM2007系列之三
  7. Oracle 并行原理与示例总结
  8. Android开发中的小技巧
  9. 策略路由实验,指定出口
  10. apache配置网络驱动器