[b]题意分析:[/b]
找出a和b间既对称既是素数的数。
[b]解题思路:[/b]
用递归去解这题。初始数据为单个的0-9和双数的00-99,扔进递归里每次在两边加0-9再递归,直到过长(大于b的长度)。这样每次递归的参数都可能是要的数值,所以递归方法首先要检查是否满足条件,除了要检查是否是素数、是否在[a,b]之间,还要注意有前导零的是不符合条件的。
素数检查代码,一般不需要写到究极,如下的就可用了。
[b]代码实现:[/b]
[url]https://github.com/leonlu/USACOJavaSolution/blob/master/USACOSection1/src/pprime.java[/url]
找出a和b间既对称既是素数的数。
[b]解题思路:[/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;
}
[b]代码实现:[/b]
[url]https://github.com/leonlu/USACOJavaSolution/blob/master/USACOSection1/src/pprime.java[/url]