Fonction parforprime et sortie en désordre

Jean-Luc ARNAUD <[email protected]>
Newsgroups gmane.comp.mathematics.pari.devel
Message-ID <[email protected]>
Bonjour,

Toujours en phase de découverte de Pari/GP, je ne trouve pas de solution 
à ce problème.

La commande suivante :

     ? forprime(i=2,100,if(ispseudoprime(2^i-1,1),print ("2^",i,"-1 est 
Premier"),print (strchr(9),"2^",i,"-1 est non Premier")))

fournit bien le résultat escompté, ci-dessous :

2^2-1 est Premier
2^3-1 est Premier
2^5-1 est Premier
2^7-1 est Premier
     2^11-1 est non Premier
2^13-1 est Premier
2^17-1 est Premier
2^19-1 est Premier
     2^23-1 est non Premier
     2^29-1 est non Premier
2^31-1 est Premier
     2^37-1 est non Premier
     2^41-1 est non Premier
     2^43-1 est non Premier
     2^47-1 est non Premier
     2^53-1 est non Premier
     2^59-1 est non Premier
2^61-1 est Premier
     2^67-1 est non Premier
     2^71-1 est non Premier
     2^73-1 est non Premier
     2^79-1 est non Premier
     2^83-1 est non Premier
2^89-1 est Premier
     2^97-1 est non Premier

Par contre, la même commande en mode MT :

     ? parforprime(i=2,100,if(ispseudoprime(2^i-1,1),print ("2^",i,"-1 
est Premier"),print (strchr(9),"2^",i,"-1 est non Premier")))

fournit un résultat en désordre :

2^2^3-1 est Premier
2-1 est Premier
2^5-1 est Premier
2^7-1 est Premier
2^17-1 est Premier
2^2^13-1 est Premier
19-1 est Premier
     2^    11-1 est non Premier
2^23-1 est non Premier
     2^    292^-1 est non Premier
         2^    2^79    2^2^8389-1 est non Premier2^
2^2^61    -1 est Premier2^67
37-1 est non Premier
31    -1 est Premier2^
7343-1 est Premier    2^
-1 est non Premier    -1 est non Premier
41-1 est non Premier
-1 est non Premier-1 est non Premier59
2^

2^972^-1 est non Premier
-1 est non Premier
47-1 est non Premier
2^71-1 est non Premier
53-1 est non Premier

Je comprends bien la raison de ce désordre, dû au fait que le MT 
retourne les résultats au fur et à mesure qu'ils sont calculés, dans un 
ordre non linéaire.
Ma question porte plutôt sur la manière d'éviter cela, si elle existe 
(en dehors de se passer du MT) : stocker les résultats dans une variable 
chaîne ? Ou option de print() que je n'aurais pas trouvée ? Ou autre ?

Merci pour votre aide.

-- 
Jean-Luc Arnaud
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.