mirror of
https://github.com/tiennm99/prime-generator.git
synced 2026-10-11 03:13:44 +00:00
36 lines
659 B
Go
36 lines
659 B
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
const (
|
|
defaultLimit = 1_000_000_000
|
|
defaultOutput = "primes.txt"
|
|
)
|
|
|
|
func main() {
|
|
limit := flag.Int("n", defaultLimit, "upper limit, inclusive, to sieve")
|
|
out := flag.String("out", defaultOutput, "output file path")
|
|
flag.Parse()
|
|
|
|
f, err := os.Create(*out)
|
|
if err != nil {
|
|
log.Fatalf("create %s: %v", *out, err)
|
|
}
|
|
defer f.Close()
|
|
|
|
count, err := writePrimes(f, sieve(*limit))
|
|
if err != nil {
|
|
log.Fatalf("write %s: %v", *out, err)
|
|
}
|
|
if err := f.Close(); err != nil {
|
|
log.Fatalf("close %s: %v", *out, err)
|
|
}
|
|
|
|
fmt.Printf("Wrote %d prime numbers up to %d to %s\n", count, *limit, *out)
|
|
}
|