FACTORISATION ET TEST DE PRIMALITÉ 32 BITS ULTRA OPTIMISÉ

John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009 - 13 juil. 2010 à 18:17
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 - 17 juil. 2010 à 01:33
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52027-factorisation-et-test-de-primalite-32-bits-ultra-optimise

Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
17 juil. 2010 à 01:33
J'ai pris cette source de Barbichette, et il avait dit qu'il était inutile d'essayer d'optimiser le Result * 2 + 1 car le compilateur le faisait automatiquement ^^
Mais merci quand même. Remarque que cette fonction n'est pas cruciale, elle sert juste à précalculer les nombres premiers jusqu'à 65521.

Cordialement, Bacterius !
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
16 juil. 2010 à 21:04
Bonsoir

J'ai pas testé ton application, juste regardé brievement le code, mais vu que l'on parle d'optimisation, ne serait-il pas plus rapide de changer la fonction root comme suit :

function Root(N: Longword): Longword;
var
Temp : LongWord ;
begin
Result := 1;
Temp := 3;
while ( N > Temp ) do
begin
Dec(N, Temp);
Inc(Result);
Inc(Temp,2);
end;
Inc(Result);
end;

Ceci afin d'éviter la répétition du calcul Result*2 + 1.

N.B. La fonction proposée, si ça se trouve, est elle aussi améliorable ;)

Cordialement.
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 juil. 2010 à 01:56
Dans un fichier ressource ? Si, ça serait possible, mais je pense que la vitesse resterait la même, car on serait obligé de copier la liste depuis le fichier ressource dans un tableau d'entiers, donc on gagnerait probablement un peu de performance au niveau des précalculs mais ça serait kif-kif au niveau des fonctions intéressantes elles-mêmes.

Mais je vais essayer pour voir ...

Cordialement, Bacterius !
John Dogget Messages postés 384 Date d'inscription vendredi 18 juin 2004 Statut Membre Dernière intervention 7 mai 2009
13 juil. 2010 à 18:17
J'aime bien ce genre d'optimisations ^^

Au niveau rapidité, c'est pas mieux d'inclure la megaliste de premier dans un fichier ressource ?
Rejoignez-nous