【程式2】題目:判斷101-200之間有多少個素數,並輸出所有素數。
阿新 • • 發佈:2019-01-31
/** 2017年3月2日9:25:30 java基礎50道經典練習題 例2 Author: ZJY Purpose: 查詢素數應用 【程式2】 題目:判斷101-200之間有多少個素數,並輸出所有素數。 程式分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數), 如果能被整除,則表明此數不是素數,反之是素數。 */ import java.util.Scanner; public class ProgramNo2_1 { public static void main(String[] args) { int primeNumber = 0; System.out.print("請輸入需要查詢素數個數的範圍的最小值: "); Scanner sc = new Scanner(System.in); int min = sc.nextInt(); System.out.print("請輸入需要查詢素數個數的範圍的最大值: "); int max = sc.nextInt(); if(min > max) { System.out.print("輸入範圍有誤!!"); System.exit(-1); } for (int index=min; index<=max; index++) { if(isPrime(index)) { primeNumber++; //System.out.println(index); //列印素數元素 } } System.out.printf("在%d到%d範圍內的素數有: %d個", min, max, primeNumber); } private static boolean isPrime(int number) { if(number < 2) return false; int divisor = 2, remainer = 0; while (Math.sqrt(number) >= divisor) { remainer = number%divisor; if(0 == remainer) return false; divisor++; } return true; } }
/** 2017年3月2日9:25:30 java基礎50道經典練習題 例2 Author: ZJY Purpose: 查詢素數應用 */ import java.util.Scanner; public class ProgramNo2_2 { public static void main(String[] args) { int primeNumber = 0; System.out.print("請輸入需要查詢素數個數的範圍的最小值: "); Scanner sc = new Scanner(System.in); int min = sc.nextInt(); System.out.print("請輸入需要查詢素數個數的範圍的最大值: "); int max = sc.nextInt(); for (int i=min; i<=max; i++) { if(isPerime(i)) { primeNumber++; System.out.printf(" %d", i); //列印素數元素 if(primeNumber%10 == 0) System.out.println(); } } System.out.println(); System.out.println("在" + min + "到" + max + "範圍內的素數有: " + primeNumber); } public static boolean isPerime(int n) { boolean flag = false; if(n < 2) return flag; for (int i=2; i<=Math.sqrt(n); i++) { if((n % i) == 0){ flag = false; break; }else { flag = true; } } return flag; } }