Ctrl K
ComunidadGuías…

examples/primes.v

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import math { log }

n := arguments()[1] or { '10' }.int()
sz := if n < 15 {
	50
} else {
	ln := log(f64(n))
	int(f64(n) * (ln + log(ln))) + 1
}
mut sieve := []bool{len: sz}
for i := 2; i * i < sz; i++ {
	if !sieve[i] {
		for j := i * i; j < sz; j += i {
			sieve[j] = true
		}
	}
}
mut c := 0
for i := 2; c < n && i < sz; i++ {
	if !sieve[i] {
		println(i)
		c++
	}
}