美文网首页
100 以内所有质数

100 以内所有质数

作者: 啷里个啷里个啷个里个啷 | 来源:发表于2021-06-17 13:49 被阅读0次
// 100 以内所有质数
// 质数(素数):只能被1和它本身整除的自然数。

// 方法一:
class PrimeNumberTest {

    public static void main(String[] asrgs){
        String str = "0-100质数为: ";
        boolean isPrimeNumber = true;
        // 获取程序运行开始时的当前时间
        long start = System.currentTimeMillis();
        int count = 0;
        for(int i = 2 ; i <= 100000; i++){
            // for (int j = 2; j < i;j++ ) { //
            for (int j = 2; j <= Math.sqrt(i);j++ ) { //优化二:对本身是质数的有效
                if (i % j == 0) {
                    isPrimeNumber = false;
                    break;// 优化一:只对非质数的自然数是有效的
                }
            }
            if (isPrimeNumber) {
                // str = str + i + " ";
                count++;
            }
            isPrimeNumber = true;
        }
        // System.out.println(str);
        System.out.println(count);
        // 获取程序运行结束时的当前时间
        long end = System.currentTimeMillis();
        System.out.println(end - start);

        /*
        说明:当 i = 100000 时,(输出str时)
        没有优化的时间是:12314
        优化一的时间为: 1294
        优化二的时间为: 273
        优化一 + 优化二 :146

        (输出count时)
        没有优化的时间是:12228
        优化一的时间为: 1127
        优化二的时间为: 125
        优化一 + 优化二 :12

        特别说明:
        算法重要性。
        */
    }
}
// 方式二:
        String str = "0-100质数为: ";

        // 获取程序运行开始时的当前时间
        long start = System.currentTimeMillis();
        int count = 0;

        label: for(int i = 2 ; i <= 100; i++){
            // for (int j = 2; j < i;j++ ) { //
            for (int j = 2; j <= Math.sqrt(i);j++ ) { 
                if (i % j == 0) {
                    continue label;
                }
            }
            // str = str + i + " ";
            count++;
        }
        // System.out.println(str);
        System.out.println(count);

        // 获取程序运行结束时的当前时间
        long end = System.currentTimeMillis();
        System.out.println(end - start);

相关文章

网友评论

      本文标题:100 以内所有质数

      本文链接:https://www.haomeiwen.com/subject/suwssltx.html