【问题描述】若将某一素数的各位数字的顺序颠倒后得到的数仍是素数,则此素数称为可逆素数。编写一个判断某数是否可逆素数的函数,在主函数中输入一个整数,再调用此函数进行判断
【输入形式】用户在第一行输入一个整数。
【输出形式】程序在下一行输出yes或是no,yes表示此数是可逆素数,no表示不是。用户输入的数必须为正整数。注意:yes或是no全是小写输出。
【样例输入】23
【样例输出】no
【样例说明】用户输入23,23各位数字颠倒之后得到32,23是素数,但32不是素数,所以23不是可逆素数。
import java.util.Scanner;
public class Main24 {
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
String str=in.next();
if(Integer.parseInt(ReverseNumber(str))>0)
{
ReverseNumber(str);
// System.out.println(ReverseNumber(str));
int n=Integer.parseInt(ReverseNumber(str));
isPrime(n);
}
}
public static String ReverseNumber(String str)
{
return new StringBuffer(str).reverse().toString();
}
public static void isPrime(int n)
{
int i=2;
for(; i<n; i++)
{
if(n%i==0)
{
System.out.println("no");
break;
}
}
if(n==i)
{
System.out.println("yes");
}
}
}
*这段代码有点问题,测试用例覆盖不全面,希望大家有意见的反馈在评论区,谢谢啦!*
import java.util.Scanner;
public class Main24
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String res = isPrime(a) && isPrime(numReverse(a))? "yes":"no";
System.out.println(res);
sc.close();
}
public static boolean isPrime(int n) //判断是不是素数
{
for (int i = 2; i <= n/2; i++)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
public static int numReverse(int n) //将数字反转
{
// String str = n + "";
String str = Integer.toString(n); //转int为String型
String reverse = new StringBuffer(str).reverse().toString(); //反转字符串
int num = Integer.parseInt(reverse); //转字符串为整型
return num;
}
}