Java 编写一个程序来打印两个给定元素之间的所有回文素数
我知道数字是什么。我只是想知道我应该如何用Java编写一个程序 我想的是,我将做两个函数- 1) 一个函数,它将数字作为参数并检查数字是否为素数 2) 将数字作为参数并检查其是否为回文的函数 然后应用AND(&&)运算符,该运算符仅在两个条件均为TRUE时返回TRUE,然后在输出上打印该数字 这种方法正确吗?还是存在任何问题Java 编写一个程序来打印两个给定元素之间的所有回文素数,java,Java,我知道数字是什么。我只是想知道我应该如何用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
做得很好,但作业问题的礼仪是只提供提示,让海报做作业。如果你使用这种方法,记得首先运行更高效的算法(就输入大小而言是大O),这样,如果它是假的,你就不必运行效率较低的算法。@amccormack:是的,谢谢:)