• [^] # Re: sources

    Posté par . En réponse au message bench : pourquoi python serait lent ?. Évalué à 2.

    Mais bien sûr !
    J'ai essayé d'avoir une version python et une version perl très proches, alors que par méconnaissance la version C++ est plus éloignée.
    Bon, je viens de m'apercevoir que ma fonction is_premier déconnait : 4012009 n'est pas premier ! J'avais fait boulette sur la fonction modulo, enfin c'est pas grave ça change pas les résultats :)
    Version C++
    #include
    bool is_premier (int nombre) {
    int i;
    for (i=1 ; i < nombre ; i++) {
    if (nombre % i == 0)
    return false;
    }
    return true;
    }
    int main (int argc, char **argv) {
    if (is_premier(4012009)) std::cout << "4012009 est premier\n";
    else std::cout << "4012009 n'est pas premier\n";
    }
    Version Perl
    #!/usr/bin/env perl

    sub is_premier {
    my ($nombre) = @_;
    my $i;
    foreach $i (1..($nombre-1)) {
    if ($nombre%$i == 0) {
    return 0;
    }
    }
    return 1;
    }

    if (is_premier(4012009)) {
    print "4012009 est premier\n"
    } else {
    print "4012009 n'est pas premier\n"
    }
    Version Python
    #!/usr/bin/env python
    import psyco #à commenter pour
    psyco.full() # désactiver psyco

    def is_premier(nombre):
    for i in range(1, nombre):
    if (nombre%i == 0):
    return 0
    return 1

    if (is_premier (4012009)):
    print "4012009 est premier"
    else:
    print "4012009 n'est pas premier"

    Ce sera tout ?