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++
                    }
                }
            }
        }
    }
  • 相关阅读:
    Python的文本数据
    Python
    正则表达式
    多数据库的链接
    工作感受月记 201902月
    女儿的出生
    工作感受月记 201901月
    工作感受月记 201812月
    工作感受月记 201811月
    工作感受月记 201809
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13780615.html
Copyright © 2011-2022 走看看