Cette page est dédiée aux amateurs d'optimisation en temps et en espace. Vous y trouverez quelques défis, et les meilleures solutions trouvées par ceux qui y ont participé.
Afficher en sortie une version de l'entrée qui a subit une rotation de 90 degrés.
Par exemple, avec cette entrée:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
on doit avoir cette sortie:
|
9 5 1 10 6 2 11 7 3 12 8 4 |
Solution la plus courte:
#!/usr/bin/perl -na
$i=0;unshift@{$r[$i++]},$_ for@F;END{print map{"@$_\n"}@r}
|
Afficher tous les nombres premiers compris entre 2 et 100000.
Solution la plus courte en Perl:
#!/usr/bin/perl
for$i(2..1E5){map{$i%$_||next}(2..$i-1);print"$i\n"}
|
Solution la plus rapide en Perl:
#!/usr/bin/perl
print"2\n";for($i=3;$i<1E5;$i+=2){map{$i%$_||next;$_*$_>$i&&goto l}@p;l:print"$i\n";push@p,$i}
|
Solution la plus courte en C:
main(j,i){for(i=2;i<1e5;)i%j--||printf(j?"":"%d ",j=i++);} // Visual C++ uniquement
main(j,i){for(i=2;i<1e5;)i%j--||(j||printf("%d ",i),j=i++);}
|
Solution la plus rapide en C:
main(i){int t,n=0,p[9999];while(++i<1E5){for(t=0;t<n&&p[t]*p[t]<=i;t++)if(i%p[t]==0)goto N;printf("%d ",p[n++]=i);N:}}
|
Calculer les 3000 premières décimales de PI
Tiny ELF executables for Linux