我知道palindromic prime号码是什么。我只是想知道如何在Java中为此创建一个程序?
我在想的是我会做两个功能 -
1)一个函数,它将数字作为参数并检查数字是否为素数?
2)一个函数,它将数字作为参数并检查它是否是回文?
然后应用AND(&&)运算符,仅当两个条件都为真时返回TRUE,然后在输出上打印该数字。
这种方法是正确的还是有问题?
让我知道一些其他方法来解决这个问题。谢谢。
答案 0 :(得分:2)
这是一个合理的开始但是性能是作业的一部分吗?这就是它会变得有趣的地方。您可以设计一系列可以拒绝可能性的测试,然后从最快到最慢排序。例如,只需快速最低位检查就可以消除所有偶数。
答案 1 :(得分:0)
Palindrom是单词(String)的属性,其中单词的反转与原始单词相同 例如。 “能够在我看到厄尔巴岛的时候” 这是你可以做到这一点的一种方式。在这里我使用apache commons lang StringUtil来反转数字
@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
答案 2 :(得分:0)