zoukankan      html  css  js  c++  java
  • Daily Coding Problem: Problem #677

    /**
     *The Sieve of Eratosthenes is an algorithm used to generate all prime numbers smaller than N.
     * The method is to take increasingly larger prime numbers, and mark their multiples as composite.
    For example, to find all primes less than 100, we would first mark [4, 6, 8, ...] (multiples of two), then [6, 9, 12, ...] (multiples of three),
    and so on. Once we have done this for all primes less than N, the unmarked numbers that remain will be prime.
    Implement this algorithm.
    Bonus: Create a generator that produces primes indefinitely (that is, without taking N as an input).
     * */
    class Problem_677 {
        /*
        * Time complexity:O(n log logn)
        * */
        fun sieveOfEratosthenes(n: Int) {
            //finally return false if array[i] is not a Prime
            val primes = BooleanArray(n + 1) { true }
            primes[0] = false
            primes[1] = false
            for (i in 2..n) {
                if (primes[i]) {
                    //println all prime
                    print("$i,")
                    var j = 2
                    //update all multiples of i
                    while (i * j <= n) {
                        primes[i * j] = false
                        j++
                    }
                }
            }
        }
    }
  • 相关阅读:
    REST API注意事项
    Javascript addEventListener dispatchEvent
    Javascript常见操作
    MySql运算符
    Mysql数据类型
    MySql基本命令
    php学习
    javascript学习
    如何快速掌握一种技术
    站在K2角度审视流程--任务的独占与释放
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13780615.html
Copyright © 2011-2022 走看看