算法题库 回文素数

算法题库 回文素数

题目

问题描述
10301年主要的数字。它有一个特征,把数字倒过来,或者它本身,有这个特征的素数,我们叫它回文素数。这些都是五位数的回文。请计算一下像这样的五个数字的回文有多少个?请填写代表数字的整数,注意不要填写任何额外信息,如描述或解释性文字,或列出所有回文素数。

解题思路

1、暴力破解。遍历所有五位数。
2、定义一个计数器sum,分两步判断数字,是回文数进入下一步判断是否为素数,都是则计数器加一
3、输出计数器sum。

//java代码
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int sum=0;//计数器保存回文素数的个数
		for (int i = 10001; i < 100000; i = i + 2) {//偶数肯定不是素数所以每次循环
			String str = String.valueOf(i);//将数字转换成字符串
			char[] c = str.toCharArray();//将字符串转化为字符数组
			boolean flag = true;
			for (int j = 0; j < c.length / 2; j++) {
				if (c[j] != c[c.length - 1 - j]) {//判断首尾字符是否相等
					flag = false;//有一个不相同。flag为错并跳出循环
					break;
				}
			}
			//如果是回文数则判断是不是素数
			if (flag) {
				for (int k = i - 1; k > 1; k--) {
					if (i % k == 0) {
						flag = false;//不是素数。flag为错并跳出循环
						break;
					}
				}
				//如果flag为true就代表i即是回文数又是素数。
				if(flag){
				sum++;
				}
			}
		}
		System.out.println(sum);
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值