• # go !

    Posté par . En réponse au journal Javascript plus rapide que python ! (une suite possible). Évalué à 4.

    soyons modernes :)
    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