• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

wchenfeng

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

(回文素数)编写程序,显示前100个回文素数。每行显示10个数,数字中间用一个空格隔开

前期题要

回文素数是指一个数同时为素数和回文数。

例如:131是一个素数,同时也是一个回文素数。

数字313和757也是如此。

代码实现

import java.util.ArrayList;

public class java6_26 {
    public static void main(String[] args){
        int MAX=100;//回文素数数量
        System.out.println("回文素数(指一个数同时为素数和回文数)");
        System.out.println("以下输出数量为"+MAX+"的回文素数");
        reversesu(MAX);
    }
    public static void reversesu(int MAX){
        int j,k,sum=1,n=1;//2是素数
        ArrayList<Integer> list=new ArrayList<>();
        k=3;
        list.add(2);
        do{
            j=3;//重置j,从头来过
            while(j<=Math.sqrt(k)&&(k%j!=0))
                j++;
            if(j>Math.sqrt(k)&&isPalindrome(k)) {
                //3~根号k中的任何值都不除尽k,满足条件;且判断是否是回文
                list.add(k);//将素数存入list动态数组当中
                sum++;
            }
            k+=2;//计算下个奇数
        }while(sum<MAX);
        for(Integer temp:list)
        {
            System.out.print(temp+" \t");
            if(n%10==0) System.out.println();
            n++;
        }
    }
    public static int reverse(int number)//进行逆反数输出
    {

        int result=0;
        while(number!=0) {
            result = result * 10 + number % 10;//取最后一位,然后最后一位*10
            number = number / 10;//去除最后一位
        }
        return result;
    }
    public static boolean isPalindrome(int number)//进行判断是否回文
    {
        return number==reverse(number);
    }
}

输出

 

posted on 2022-04-12 20:01  王陈锋  阅读(196)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3