leon1789 a écrit:autant !!! Chez moi, c'est instantané ! (j'ai pourtant un PC qui a 5 ans, mais maple 7...)
Pour factoriser 10^8+1 , ça commence à compter en secondes...
Euhh moi pour 10^8+1 ca met 3,6 sec... , j'ai un PC qui a 1an, j'ai peut-être un virus ????
EDIT :
leon1789 a écrit:Ainsi, on peut encore accélérer : au lieu de tester 2 puis 3 +2+2+2 ..., on peut tester 2 et 3, puis tester les nombres 5 +2+4 +2+4 +2+4...
On va alors gagner un tiers du temps de calcul.
Alors j'ai essayé ceci dans Maple :
premier_diviseur := proc(N) # N est supposé >= 2
> #leon and me's optimisation 4sec pour 10^8+1
> local p;
> if irem(N,2)=0 then RETURN(2) fi ;
> if irem(N,3)=0 then RETURN(3) fi ;
> p:=5;
> while irem(N,p)0 do
> if irem(p-5,6)=0 then p:=p+2;
> else p:=p+4;fi;
> od;
> RETURN(p);
Comme je l'ai marqué dans Maple, ca met 4sec environ (j'ai fais plusieurs répétitions et ca donne tjrs 4sec) pour 10^8+1
Avec ceci maintenant :
premier_diviseur := proc(N) # N est supposé >= 2
> #leon's optimisation 3.6sec pour 10^8+1
> local p;
> if irem(N,2)=0 then RETURN(2) fi ;
> if irem(N,3)=0 then RETURN(3) fi ;
> p:=5;
> while irem(N,p)0 do p:=p+2;od ;
> RETURN(p);
> end:
Ca met, comme je l'ai mis, 3.6sec pour 10^8+1
Pourquoi perd-t-on du temps alors qu'on a optimisé ?
Je signale que j'ai à chaque fois revalider la procédure "décomposition" après avoir validé l'une ou l'autre des procédures "premier_diviseur"