美文网首页
大于N的最小回文素数

大于N的最小回文素数

作者: 桂老七 | 来源:发表于2020-01-08 10:56 被阅读0次
    class Solution {
        public static boolean judge(int n){
            if(n<=1){
                return false;
            }
    
            char[] arr=Integer.toString(n).toCharArray();
            int len=arr.length;
            if(n>11&&len%2==0){
                return false;
            }
            // 判断是否回文
            for(int i=0;i<len/2;i++){
                if(arr[i]!=arr[len-1-i]){
                    return false;
                }
            }
            //判断是否素数---a=x*y的话,x或y必有一个大于等于平方根,另一个小于等于平方根;
            for(int i=2;i<=Math.sqrt(n);i++){
                if(n%i==0){
                    return false;
                }
            }
            return true;
        }
        public int primePalindrome(int N) {
            for(int n=N;true;n++){
                int len= (n+"").length();
                // 偶数长度的对称数一定会被11整除,直接长度加1,从下个10...01开始
                if(n>11&&len%2==0){
                    n=(int)Math.pow(10,len);
                    continue;
                }
                if(judge(n)){
                    return n;
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:大于N的最小回文素数

          本文链接:https://www.haomeiwen.com/subject/asgjactx.html