package main
import "fmt"
const n int = 10000
func main() {
var d [n] int;
for i := 0; i < n; i++ {
d[i] = 1
}
for i := 2; i < n / 2; i++ {
for j := 2 * i; j < n; j += i {
d[j] += i
}
}
for i := 2; i < n; i ++ {
if (d[i] < n) && (i <= d[i]) {
if d[d[i]] == i {
fmt.Print("(", i, d[i], "), ")
}
}
}
fmt.Print("\n")
}
bon, pas sûr qu'on puisse pas faire mieux, c'est limite mon premier essai en go. Chez moi, en faisant 50 itérations sur des entiers jusqu'à 1000000, go prend 15%/20 % de temps de plus que le C. (100 boucles sur 10000, c'est trop court, les fluctuations entre 2 essais sont trop importantes)
Aussi, j'utilise le compilo go qui avait été fourni genre à l'annonce officielle du langage, la dernière version fait peut-être mieux
# go !
Posté par gaaaaaAab . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 4.
package main import "fmt" const n int = 10000 func main() { var d [n] int; for i := 0; i < n; i++ { d[i] = 1 } for i := 2; i < n / 2; i++ { for j := 2 * i; j < n; j += i { d[j] += i } } for i := 2; i < n; i ++ { if (d[i] < n) && (i <= d[i]) { if d[d[i]] == i { fmt.Print("(", i, d[i], "), ") } } } fmt.Print("\n") }bon, pas sûr qu'on puisse pas faire mieux, c'est limite mon premier essai en go. Chez moi, en faisant 50 itérations sur des entiers jusqu'à 1000000, go prend 15%/20 % de temps de plus que le C. (100 boucles sur 10000, c'est trop court, les fluctuations entre 2 essais sont trop importantes) Aussi, j'utilise le compilo go qui avait été fourni genre à l'annonce officielle du langage, la dernière version fait peut-être mieux