试题 算法训练 P0704
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
一个数如果从左往右读和从右往左读数字是完全相同的,则称这个数为回文数,比如898,1221,15651都是回文数。编写一个程序,输入两个整数min和max,然后对于min~max之间的每一个整数(包括min和max),如果它既是一个回文数又是一个质数,那么就把它打印出来。要求,回文数和质数的判断都必要要用函数的形式来实现。
输入:
5 100
输出:
5 7 11
提交代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int min = sc.nextInt(),max = sc.nextInt();
for(int i= min;i<=max;i++){
if(isHuiWen(i)&&isPrime(i)){
System.out.print(i+" ");
}
}
}
private static boolean isHuiWen(int num){
String s = String.valueOf(num);
StringBuffer s1 = new StringBuffer(s);
s1.reverse();
int l = s.length();
if(l==1)return true;
for(int i=0;i<l/2;i++){
if(s.charAt(i)!=s1.charAt(i)){
return false;
}
}
return true;
}
private static boolean isPrime(int num){
if(num==2)return true;
if(num%2==0||num==1)return false;
for(int i=3;i<=Math.sqrt(num);i+=2){
if(num%i==0){
return false;
}
}
return true;
}
}