Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 编写一个程序来打印两个给定元素之间的所有回文素数_Java - Fatal编程技术网

Java 编写一个程序来打印两个给定元素之间的所有回文素数

Java 编写一个程序来打印两个给定元素之间的所有回文素数,java,Java,我知道数字是什么。我只是想知道我应该如何用Java编写一个程序 我想的是,我将做两个函数- 1) 一个函数,它将数字作为参数并检查数字是否为素数 2) 将数字作为参数并检查其是否为回文的函数 然后应用AND(&&)运算符,该运算符仅在两个条件均为TRUE时返回TRUE,然后在输出上打印该数字 这种方法正确吗?还是存在任何问题 让我知道解决这个问题的其他方法。谢谢。这是一个合理的开始,但绩效是任务的一部分吗?这才是有趣的地方。您可以设计一系列测试,拒绝各种可能性,然后从最快到最慢排序。例如,只需快

我知道数字是什么。我只是想知道我应该如何用Java编写一个程序

我想的是,我将做两个函数-

1) 一个函数,它将数字作为参数并检查数字是否为素数

2) 将数字作为参数并检查其是否为回文的函数

然后应用AND(&&)运算符,该运算符仅在两个条件均为TRUE时返回TRUE,然后在输出上打印该数字

这种方法正确吗?还是存在任何问题


让我知道解决这个问题的其他方法。谢谢。

这是一个合理的开始,但绩效是任务的一部分吗?这才是有趣的地方。您可以设计一系列测试,拒绝各种可能性,然后从最快到最慢排序。例如,只需快速进行最低有效位检查即可消除所有偶数

是一个单词(字符串)的属性,其中单词的反面与原始字符是一致的 “在我看到厄尔巴岛之前我是能干的” 这是你能做到这一点的一种方法。这里我使用ApacheCommonsLangStringUtil来反转这个数字

@org.junit.Test
public void test16() throws Exception {

    BigInteger from = new BigInteger("1");
    BigInteger to = new BigInteger("100000");

    BigInteger palindromicPrime = from;
    while((palindromicPrime = palindromicPrime.nextProbablePrime()).compareTo(to) < 0){
        if(palindromicPrime.toString().equals(StringUtils.reverse(palindromicPrime.toString()))){
            System.out.println(palindromicPrime);
        }
    }
}
Output :
2
3
5
7
11
101
131
151
181
191
313
353
373
383
727
757
787
797
919
929
10301
10501
10601
11311
11411
12421
@org.junit.Test
public void test16()引发异常{
BigInteger from=新的BigInteger(“1”);
BigInteger to=新的BigInteger(“100000”);
BigInteger palindromicPrime=from;
while((palindromicPrime=palindromicPrime.nextProbablePrime()).compareTo(to)<0){
if(palindromicPrime.toString().equals(StringUtils.reverse(palindromicPrime.toString())){
System.out.println(回文格式);
}
}
}
输出:
2.
3.
5.
7.
11
101
131
151
181
191
313
353
373
383
727
757
787
797
919
929
10301
10501
10601
11311
11411
12421
  • 如果数字大于10,检查数字是否以1,3,7或9结尾(换句话说,按照1,3,7,9顺序递增)。(注意:2和5是素数,因此不要消除所有偶数或以5结尾的所有数字)
  • 如果1为真,则检查它是否为回文
  • 如果2为真,则检查它是否为素数

  • 做得很好,但作业问题的礼仪是只提供提示,让海报做作业。如果你使用这种方法,记得首先运行更高效的算法(就输入大小而言是大O),这样,如果它是假的,你就不必运行效率较低的算法。@amccormack:是的,谢谢:)