题解 | #双素数#

双素数

http://www.nowcoder.com/practice/8cb1f3979b524ed1ba67b4f64ed9e4f2

import java.util.Scanner;

/**
 * 双素数
 * @Author zhuyq
 * @Date 2021-09-17
 */
public class Main {
    private static int maxVal = 1000000;

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.println(getMinKDoublePrime(Integer.parseInt(in.nextLine())));
    }



    //输出第k小的双素数
    public static int getMinKDoublePrime(int k){
        int minKDoublePrime = -1;
        int count = 0;
        for(int i=1; i<=maxVal; i++){
            if(isDoublePrime(i)){
                count++;
                if(count==k){
                    minKDoublePrime=i;
                    break;
                }
            }
        }
        if(count<k){
            minKDoublePrime=-1;
        }
        return minKDoublePrime;
    }


    //判断是否是双素数
    public static boolean isDoublePrime(int number){
        boolean isDoublePrime = true;
        if(isPrime(number)){
            int reverseNumber = Integer.parseInt(new StringBuffer(String.valueOf(number)).reverse().toString());
            if(number!=reverseNumber && isPrime(reverseNumber)){
                isDoublePrime=true;
            }
            else{
                isDoublePrime=false;
            }
        }
        else{
            isDoublePrime=false;
        }
        return isDoublePrime;
    }



    //判断是否是素数
    public static boolean isPrime(int data){
        if(data<2) return false;
        for(int i=2;i<=Math.sqrt(data);i++){
            if(data%i==0) return false;
        }
        return true;
    }



}
全部评论

相关推荐

11-28 17:48
中山大学 C++
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
霁华Tel:秋招结束了,好累。我自编了一篇对话,语言别人看不懂,我觉得有某种力量在控制我的身体,我明明觉得有些东西就在眼前,但身边的人却说啥也没有,有神秘人通过电视,手机等在暗暗的给我发信号,我有时候会突然觉得身体的某一部分不属于我了。面对不同的人或场合,我表现出不一样的自己,以至于都不知道自己到底是什么样子的人。我觉得我已经做的很好,不需要其他人的建议和批评,我有些时候难以控制的兴奋,但是呼吸都让人开心。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务