USACO Section 1.5.2 [Prime Palindromes] Java题解

本文介绍了一种使用递归方法寻找特定区间内既是素数又是回文数的算法。通过逐步构建回文数并检查其素性,确保生成的数同时满足两个条件。递归过程中考虑了前导零的问题,并提供了简洁有效的素数验证代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b]题意分析:[/b]
找出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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值