现在给出一个素数,这个素数满足两点:
1、 只由1-9组成,并且每个数只出现一次,如13,23,1289。
2、 位数从高到低为递减或递增,如2459,87631。
请你判断一下,这个素数的回文数是否为素数(13的回文数是131,127的回文数是12721)。
现在给出一个素数,这个素数满足两点:
1、 只由1-9组成,并且每个数只出现一次,如13,23,1289。
2、 位数从高到低为递减或递增,如2459,87631。
请你判断一下,这个素数的回文数是否为素数(13的回文数是131,127的回文数是12721)。
输入只有1行。第1行输入一个整数t,保证t为素数。数据保证:9<t<109
输出一行字符串,如果t的回文数仍是素数,则输出“prime”,否则输出"noprime"。
13
prime
13的回文数是131,131是素数
17
noprime
17的回文数是171,171不是素数(因子有3)
素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。
素数的回文数为题意中的定义,1331不是素数的回文数。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
long pali = palindrome(n);
if (isprime(pali)){
System.out.println("prime");
} else {
System.out.println("noprime");
}
}
public static long palindrome(int n){
String num = Integer.toString(n);
StringBuilder palinum = new StringBuilder(num);
for (int i = num.length()-2; i >= 0; i--) {
palinum.append(num.charAt(i));
}
return Long.parseLong(palinum.toString());
}
public static boolean isprime(long pali){
int count = 0;
for (int i = 2; i < Math.sqrt(pali); i++) {
if (pali % i == 0){
count++;
}
}
return count == 0;
}
} import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long a = getnumber(n);
if(isPrime(a)){
System.out.println("prime");
}
else{
System.out.println("noprime");
}
}
public static boolean isPrime(long a){
if(a == 1){
return false;
}
for(long i = 2 ; i*i <= a ;i++){
if(a % i == 0){
return false;
}
}
return true;
}
public static long getnumber(int n){
int s;
long sum = (long)n;
n /= 10;
while(n != 0){
s = n%10;
sum = sum*10 + s;
n /= 10;
}
return sum;
}}