zoukankan      html  css  js  c++  java
  • 第二个算法

    判断101-200之间有多少个素数,并输出所有素数。

    算法一:

    public class ArithmeticTest2 {
        public static void main(String[] args){
            long start=System.currentTimeMillis();
               for(int i=2;i<=1000000;i++)
                if (isPrime(i)) {// 调用isPrime()方法
                    System.out.println(i + "是素数!");// 若isPrime()方法返回true,输出是素数
                }
            long end=System.currentTimeMillis();
            System.out.println("运行时间:"+(end-start));
        }
    
        /**
         * <pre>
         * 用于判断一个数是否为素数,若为素数,返回true,否则返回false
         * </pre>
         *
         * @param a
         *            输入的值
         * @return true、false
         */
        public static boolean isPrime(int a) {
    
            boolean flag = true;
    
            if (a < 2) {// 素数不小于2
                return false;
            } else {
    
                for (int i = 2; i <= Math.sqrt(a); i++) {
    
                    if (a % i == 0) {// 若能被整除,则说明不是素数,返回false
    
                        flag = false;
                        break;// 跳出循环
                    }
                }
            }
            return flag;
        }
    }

    算法二:

    public class ArithmeticTest2_1 {
    
        public static void main(String[] args){
            long start=System.currentTimeMillis();
            for(int i=2;i<=1000000;i++){
                    if (isPrime(i)) {// 调用isPrime()方法
                        System.out.println(i + "是素数!");// 若isPrime()方法返回true,输出是素数
                    }
                i=i+2; //过滤所有偶数
             }
            long end=System.currentTimeMillis();
            System.out.println("运行时间:"+(end-start));
        }
        public static boolean isPrime(int a) {
            boolean flag = true;
            if (a < 2) {// 素数不小于2
                return false;
            } else {
                for (int i = 2; i <= Math.sqrt(a); i++) {
                    if (a % i == 0) {// 若能被整除,则说明不是素数,返回false
                        flag = false;
                        break;// 跳出循环
                    }
                }
            }
            return flag;
        }
    }

    算法二的执行速度比算法一快了一倍。大家还有没有什么好的算法求推荐。

  • 相关阅读:
    判断闰年
    CaesarCode
    substring
    configure: error: Cannot use an external APR with the bundled APR-util
    字符串处理487-3279
    git分支管理
    git解决冲突
    git 分支的创建和切换
    nginx与php-fpm原理
    git 远程仓库与本地项目关联
  • 原文地址:https://www.cnblogs.com/renyubins/p/3781019.html
Copyright © 2011-2022 走看看