数学问题——求回文素数

来源:互联网 发布:php获取访问者mac地址 编辑:程序博客网 时间:2024/06/06 19:56

回文数,是指一个多位数在按位读时,无论是从右到左还是从左到右,其结果都是一样的特征。

回文素数,是回文数的同时,还是一个素数。

思路,构建两个辅助函数,一个用于判断回文,一个用于判断是否为素数。

参考代码:

package com.js.math;import java.util.Scanner;/** * 回文素数 * 是指一个多位数在按位读时,无论是从右到左还是从左到右,其结果都是一样的特征 */public class PalindromeNum {    public static void main(String[] args) {        int boundary = 0;        Scanner scanner = new Scanner(System.in);        System.out.println("请输入查找范围...");        if(scanner.hasNext()){            boundary = scanner.nextInt();            for(int i = 0;i<boundary;i++){                if((i>10)&&compare(i)&&judge(i))                    System.out.println("找到一个回文素数..."+i);            }        }    }    //p判断回文    public static boolean compare (int a){        boolean flag = false;        String strA = String.valueOf(a);        int length = strA.length();        int count = 0;        for(int j=0;j<length;j++){            if(strA.charAt(j)==strA.charAt(length-1-j)){                count++;            }        }        if(count==length){            flag = true;        }        return flag;    }    //判断素数    public static  boolean judge(int a){        boolean flag = true;        for(int i=2;i<=Math.sqrt(a);i++){            if(a%i==0){                flag = false;            }        }        return  flag;    }}