`
leonluchen
  • 浏览: 30458 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

USACO Section 1.5.2 [Prime Palindromes] Java题解

阅读更多
题意分析:
找出a和b间既对称既是素数的数。

解题思路:
用递归去解这题。初始数据为单个的0-9和双数的00-99,扔进递归里每次在两边加0-9再递归,直到过长(大于b的长度)。这样每次递归的参数都可能是要的数值,所以递归方法首先要检查是否满足条件,除了要检查是否是素数、是否在[a,b]之间,还要注意有前导零的是不符合条件的。
素数检查代码,一般不需要写到究极,如下的就可用了。
if(tmp % 2 ==0 || tmp %3 == 0) return;
for(int i = 5; i*i <=tmp; i+=2){
    if(tmp %i == 0)
        return;
}


代码实现:
https://github.com/leonlu/USACOJavaSolution/blob/master/USACOSection1/src/pprime.java
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics