日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2024/2/28 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【PAT甲级 素数判断 进制转换】1015 Reversible Primes (20 分) Java版 4/4通过 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目


思路:

為了提高效率,判斷素數采用打表的方式
先計算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通过的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。