1. 程式人生 > >Java用“埃氏篩法”求素數

Java用“埃氏篩法”求素數

用“埃氏篩法”求素數。
先去掉2的倍數,再去掉3的倍數,再去掉4的倍數,……依此類推,最後剩下的就是素數。
要求:使用陣列,使用陣列的長度,使用增強的for語句

import java.util.Scanner;
public class MyDemo{
    public static void main(String[] args) {
        System.out.println("What's the range you want to get the prime number?");
        System.out.println("你想獲得多少以內的素數?"
); Scanner in = new Scanner(System.in); int range = in.nextInt(); int[] a = new int[range]; //Assign an array to an array //陣列賦值 for(int i=0;i<a.length-1;i++){ a[i]=i+2; } //prime number is 0 , composite number is 0 //素數為本身,合數為0
for(int i=2;i<=a.length;i++){ for(int j=0;j<a.length-1;j++){ if(a[j]!=0){ if(a[j]%i==0 && a[j]/i!=1){ a[j]=0; } } } } System.out.println("Prime number within "
+range); System.out.println("輸出"+range+"之間所有素數"); int count = 0; for(int num : a) { if(num!=0){ System.out.print(num+" "); count++; if(count%10==0){ //A line of ten numbers 每輸出10個素數換行 System.out.println(); } } } System.out.println(); System.out.println("The number of prime numbers is: "+count); System.out.println("共"+count+"個素數"); } }