题目


思路:

为了提高效率,判断素数采用打表的方式
先计算100000以内的所有素数,然后如果要判断一个数是否为素数的话,直接与表中比对

题目中的意思是:

首先,判断一个数N1是否为素数
如果N1是素数,把这个数以D进制的方式转换为N2
然后将N2翻转,(操作上)再把N2转化回十进制(实际上进制不影响素数的判断),判断N2是否为素数
如果是,输出Yes,否则输出NO


笔记

  • 素数与进制的关系

素数是根据能不能整除定义的,是否素数与进制无关

十进制的素数和8进制、4进制的素数在数值大小上是一样的

  • 将一个数字翻转
StringBuilder sb=new StringBuilder();
sb.append(n1);
int n2 = Integer.parseInt(sb.reverse().toString());// n2是n1翻转
  • Java封装的进制转换


代码

import java.util.Arrays;
import java.util.Scanner;//素数是根据能不能整除定义的,是否素数与进制无关。
public class Main {public static void main(String[] args) {// 打表10^5// 如果是true,循环设置其倍数为false 如果为false 跳过boolean[] isPrime = new boolean[100001];Arrays.fill(isPrime, true);isPrime[0] = false;isPrime[1] = false;// 写表for (int i = 2; i <= 100000; i++) {if (isPrime[i]) {for (int j = i * 2, t = 2; j <= 100000; j = i * t, t++) {isPrime[j] = false;}}}Scanner sc = new Scanner(System.in);while (sc.hasNext()) {int n1 = sc.nextInt();// reversible?if (n1 < 0) break;int d = sc.nextInt();// radixif (isPrime[n1]) {// 正序是素数String str = Integer.toString(n1, d);// d进制转换StringBuilder sb = new StringBuilder();str = sb.append(str).reverse().toString();// 转换后逆序str = Integer.toString(Integer.parseInt(str, d));// 转化回10进制int n2 = Integer.parseInt(str);if (isPrime[n2]) {System.out.println("Yes");} else {System.out.println("No");}} else {System.out.println("No");}}}
}

【PAT甲级 素数判断 进制转换】1015 Reversible Primes (20 分) Java版 4/4通过相关推荐

  1. 【PAT甲级 ArrayList存放class】1011 World Cup Betting (20 分) Java版 3/3通过 四舍五入保留两位小数

    题目 一共给9个数,3*3,找到每行最大,按照题目要求套算式,计算就行 坑 & 心得 没啥坑,一次通过,用到的知识点是:自定义排序.四舍五入保留两位小数 DecimalFormat df = ...

  2. 【PAT甲级 StringBuilder的使用】1005 Spell It Right (20 分) Java版 7/7通过

    题目 挺简单的,是个水题 坑 & 心得 一开始switch (i)忘了写case 0的情况,导致两个测试点没通过,不过很快就发现了 int 类型的 sum 转换为 str 的方式:用空字符串拼 ...

  3. PAT甲级1058(进制转换的“/” ,“%”干货!)

    题目 1058 A+B in Hogwarts(20 分) If you are a fan of Harry Potter, you would know the world of magic ha ...

  4. 【题目解析】1015 Reversible Primes (20 分)_27行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 A reversible prime in any number system is a prime whose "re ...

  5. [Java] 1015. Reversible Primes (20)-PAT甲级

    1015. Reversible Primes (20) A reversible prime in any number system is a prime whose "reverse& ...

  6. 【PAT甲级 进制转换】1019 General Palindromic Number (20 分) Java版 7/7通过

    题目 这道题可以说是非常友善了,说白了是个水题.题目没什么坑,一次通过,主要思想就是: 输入两个数:num和base 将num按照base进制转换,得到arr 判断arr是否是一个回文数,并且输出这个 ...

  7. 【PAT甲级 十进制转十三进制】1027 Colors in Mars (20 分) Java版 5/5通过

    题目 是个水题,一次通过. 这道题的大意就是:给你输入3个十进制的数,让你转换成3个十三进制数.在转换的时候,注意不足两位的要用0补全两位. 小坑 提交之前,想起来自查一下我的convert(int ...

  8. PAT甲级1010 (进制和二分法)

    题目 Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The ...

  9. 【PAT甲级 替换指定字符】1035 Password (20 分) Java版 4/4通过

    题目 这个题挺简单,意思就是把所有的1替换成@,0替换成%等等 读题要仔细,输出格式方面有几个小坑: 末尾不要有多余的空格.换行 如果替换了,要在第一行输出替换的条数 如果没替换,要把题目给的字符串拼 ...

最新文章

  1. tensorflow1
  2. 永久代内存java_Java8内存模型—永久代(PermGen)和元空间(Metaspace)
  3. ARM9学习笔记之——MMU
  4. lesson from kong fu
  5. linux pro*c环境配置,打造ubuntu下精简版的oracle客户端及pro*c编译环境
  6. python制作自动回复脚本_python itchat实现微信自动回复的示例代码
  7. 使用VS2015编写C/C++开始步骤
  8. jnativecpp.dll一定要放到系统目录下吗_电脑硬盘有必要分区吗,分几个区最好?...
  9. 信息学奥赛一本通 1193:吃糖果 | OpenJudge NOI 2.6 1944:吃糖果
  10. mysql 内存表 速度_mysql查询速度。为什么用内存表查询tmp表比直接选择慢?
  11. mcafee杀死oracle,如何从卸载McAfee卸载工具
  12. 【转】使用chrome插件Page Monitor监控网页内容变化
  13. Atitit 档案学 档案管理 attilax学习总结
  14. Cadence制作flash焊盘时找不到
  15. 算法与数据结构(邓俊辉)第一章
  16. Go2Shell 打开设置窗口
  17. 目前住院病人主要由护士护理,这样做不仅需要大量护士,而且还可能会延误抢救时机。某医院打算开发一个以计算机为中心的患者监护系统,试写出问题定义,并且分析开发这个系统的可行性。
  18. 利用OpenGL设计贪吃蛇游戏
  19. CH3-面向对象上 (4个案例实现)
  20. 如何屏蔽博客园中的Google广告

热门文章

  1. 数据科学竞赛-人脸表情识别
  2. Linux服务-telnet服务部署(配置允许root登录)
  3. HDU1066--高精度求阶乘最后非零位
  4. VC C/C++ 4种方法获取文件大小 Windows API
  5. VC窗口形状的绘制---SetWindowRgn
  6. 白话科普系列——最好用的浏览器 Chrome,你用了么?
  7. linux 下 MySQL卸载和安装
  8. 从容器到容器云,什么才是 Kubernetes 的本质?
  9. 深度解密Go语言之context
  10. 没有他,就没有我们现在的WebRTC