求100000以内的质数(Java)

小作业
1353 0

时间:2019.3.21

类型:java

关键代码:

import java.util.Scanner;
public class primeNumber20190320 {
    public static void main(String[] args) {
        primeNumber20190320 pn = new primeNumber20190320();
        pn.zhiShu(200000000);
    }
    void zhiShu(int k) {
        int[] num = new int[k+1];
        empty(num, k);
        num[0] = 1;
        num[1] = 1;
        for (int i = 2; i <= k; i++) {
            if (num[i] == 0) {
                for (int j = i * 2 ; j <= k; j += i) {
                    num[j] = 1;
                }
            }
        }
        shuchu(num, k);
    }
    void empty(int[] arr,int n) {
        // if (n == 1) {
        //     arr[n] = 0;
        // }else{
        //     arr[n] = 0;
        //     empty(arr, n-1);
        // }
        for (int i = n;i>0;i--) {
            arr[i] = 0;
        }
    }
    void shuchu(int[] arr2,int a) {
        // for (int i = a;i>0;i--) {
        //     System.out.print("?" + arr2[i] + "&" + i + "\t");
        // }
        for (int j = 1; j <= a; j++) {
            if (arr2[j] == 0) {
                System.out.print(j + "\t");
            }
        }
        System.out.println();
    }
}

功能:通过java实现短时间内找出1000000以内的质数,锻炼算法的应用。

实现效果:自行尝试。

注意事项:

  1. 数值较大时,需要稍等片刻,才会有效果。


最后更新 2019-05-24
评论 ( 0 )
OωO
隐私评论