Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
46
Task/Cuban-primes/Go/cuban-primes.go
Normal file
46
Task/Cuban-primes/Go/cuban-primes.go
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/big"
|
||||
)
|
||||
|
||||
func commatize(n uint64) string {
|
||||
s := fmt.Sprintf("%d", n)
|
||||
le := len(s)
|
||||
for i := le - 3; i >= 1; i -= 3 {
|
||||
s = s[0:i] + "," + s[i:]
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
func main() {
|
||||
var z big.Int
|
||||
var cube1, cube2, cube100k, diff uint64
|
||||
cubans := make([]string, 200)
|
||||
cube1 = 1
|
||||
count := 0
|
||||
for i := 1; ; i++ {
|
||||
j := i + 1
|
||||
cube2 = uint64(j * j * j)
|
||||
diff = cube2 - cube1
|
||||
z.SetUint64(diff)
|
||||
if z.ProbablyPrime(0) { // 100% accurate for z < 2 ^ 64
|
||||
if count < 200 {
|
||||
cubans[count] = commatize(diff)
|
||||
}
|
||||
count++
|
||||
if count == 100000 {
|
||||
cube100k = diff
|
||||
break
|
||||
}
|
||||
}
|
||||
cube1 = cube2
|
||||
}
|
||||
fmt.Println("The first 200 cuban primes are:-")
|
||||
for i := 0; i < 20; i++ {
|
||||
j := i * 10
|
||||
fmt.Printf("%9s\n", cubans[j : j+10]) // 10 per line say
|
||||
}
|
||||
fmt.Println("\nThe 100,000th cuban prime is", commatize(cube100k))
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue