ARTS打卡计划第四周-ALGORITHM
求出大于或等于 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相关推荐
- ARTS打卡计划第四周-TIPS-自定义一个LikeFilter
django-restframe-work的searchfilter,可以从search_fields 的一个或者多个字段中搜索,语法类似http://example.com/api/products ...
- ARTS打卡计划第二周-Share-使用java注解对方法计时
现在有这样一种常见,系统中有一个接口,该接口执行的方法忽快忽慢,因此你需要去统计改方法的执行时间.刚开始你的代码可能如下: long start = System.currentTimeMillis( ...
- ARTS打卡计划第一周-Share-系统字典模块的设计
在软件开发的过程,经常有一些类型的字段信息:性别.学历.职级.车辆类别.公司类型.结算类型等.这些字段有2个特征:1是字段可选的类型是有限,2是字段可能会变化,我们把这种字段描述为字段字段. 本篇文 ...
- ARTS打卡计划第六周
Algorithms: https://leetcode-cn.com/problems/longest-palindromic-substring/ 中心扩展法首先考虑,当然看到有个动态规划,一直很 ...
- ARTS打卡计划第三周-Tips
本周分享一个好用的小工具,java-faker:https://github.com/DiUS/java-faker,相应的python:https://github.com/joke2k/faker ...
- ARTS打卡计划第6周-REVIEW-超越编码的避免项目失败的软技能
https://medium.com/@viral_shah/beyond-coding-soft-skills-to-avoid-project-failures-4ed7821fa93a 做项目中 ...
- ARTS打卡20-别轻视简约的JSON
Algorithm做算法题,Review点评英文文章,Tip总结技术技巧,Share做技术分享.每周打卡一次,这就是ARTS打卡. 1. 做算法题 LeetCode58题. 最后一个单词的长度 题目描 ...
- 中信涂猪android抓包,玩卡计划 篇二:中信《鼠来宝》规则攻略,珠光宝气之后的活动!还记得去年的涂猪吗?...
玩卡计划 篇二:中信<鼠来宝>规则攻略,珠光宝气之后的活动!还记得去年的涂猪吗? 2020-01-06 17:37:56 2点赞 9收藏 0评论 创作立场声明:1月6日活动即将开启,提前做 ...
- 佳能hdr_21天摄影打卡计划 5月15日主题:HDR
0121天摄影打卡计划 5月15日主题:HDR 今天是21天打卡计划第17天,今天我们的打卡主题是:HDR. HDR,High-Dynamic Range,中文翻译为高动态范围图像,不是单指一种图像或 ...
最新文章
- CVPR2020行人重识别算法论文解读
- python numpy array最大长度_python 中 numpy array 中的维度
- HTTP Server Mock 从手工到平台的演变(二)
- java做台球时老是闪屏_电脑老是闪屏的原因和解决办法
- 语言课程设计超市售货_自闭症儿童家庭干预10个语言能力提升小技巧
- Google Guava多集
- matlab for循环不覆盖,Matlab for 多个变量循环能不能这样啊 ,求教高手!!!!...
- Django的认证系统(auth)
- 标量、向量、矩阵、张量
- PHP中利用Ffmpeg获得flv视频缩略图和播放时间
- 大数据开发笔记(十):Hbase列存储数据库总结
- mysql学习笔记 51_MySQL学习笔记(一)
- 两个平面的位置关系和判定方程组解_必修二数学课后题答案
- 编译工具链和交叉编译工具链简易说明
- 饿百零售开放平台,测试账号饿了么显示该商家还没有上传商品
- Java 强制删除文件或目录
- 设计一个家庭记账管理系统(Java)
- linux mysql 权限不够_linux提示权限不够怎么办
- C语言中char和char *a[]和char (*a)[]
- 用友系统客户端登录不上服务器,客户端不能登录服务器-用友U8