recherce d'infos

emmo

recherce d'infos

Message par emmo » 22 avr. 2007 12:07

bonjour, j'aimerais savoir si vous aviez des références et/ou des liens à fournir pour ce qui est de l'étude du test de primalité "isprime" de Maple...
j'ai maintenant la procédure en détaillée mais je chercherais des informations
donc... à vot' bon coeur m'sieurs dames
merci d'avance

Messages : 3901

Inscription : 04 sept. 2005 19:27

Profil de l'utilisateur : Élève de lycée

Message par JeanN » 22 avr. 2007 14:20

Il faudrait être un poil plus précis dans ta question...
Personnellement, je ne me suis jamais penché dessus mais si tu pouvais nous expliquer en quelques lignes en quoi ça consiste et les questions que tu te poses, je pense que ça m'intéresserait.
Professeur de maths MP Lycée Sainte-Geneviève

Alban

Message par Alban » 22 avr. 2007 21:07

Si c'est l'algorithme précis, à mon avis, c'est confidentiel (secret industriel).

L'aide du logiciel ne suffit pas à avoir toutes les informations dont tu as besoin ?

emmo

Message par emmo » 27 avr. 2007 21:43

okay désolé d'avoir été si lent à répondre...
en fait,
en tapant
verbose(proc=2);
puis
print(isprime);
on a le détail de la fonction isprime de Maple et mon prof m'a fourni les renseignements dont j'avais besoin,
merci quand même^^

emmo

Message par emmo » 29 avr. 2007 16:22

pour ceux que ça intéresserait, voici un lien explicatif de la fonction isprime:
http://www.google.fr/search?sourceid=na ... ber+theory
(premier lien)
et voici donc la procédure:

Code : Tout sélectionner

proc (n)
local btor, nr, p, r;
options remember, system,
‘Copyright 1993 by Waterloo Maple Software‘;
if not type(n,integer) then
if type(n,numeric) then
ERROR(‘argument must be an integer‘)
else
RETURN(’isprime(n)’)
;
if n
<
2 then
false
elif has(‘isprime/w‘,n) then
true
elif igcd(2305567963945518424753102147331756070,n)
<>
1 then
false
elif n
<
10201 then
true
elif igcd(84969694892334181105323399091873499659260625866489327366
1154542634220389327076939090906947730950913750978691711866802886149933382
5097682386722983737962963066757674131126736578936440788157186969893730633
1130664786204486249492573240226273954373636390387526081667586612559568346
3069722044751229884822222855006268378634251996022599630131594564447006472
0696621750477244528915927867113,n)
<>
1 then
false
elif n
<
1018081 then
true
else nr := igcd(408410100000,n-1);
nr := igcd(nr^ 5,n-1);
r := iquo(n-1,nr);
btor := modp(power(2,r),n);
if ‘isprime/cyclotest‘(n,btor,2,r) = false
or irem(nr,3) = 0 and ‘isprime/cyclotest‘(n,btor,3,r) = false
or irem(nr,5) = 0 and ‘isprime/cyclotest‘(n,btor,5,r) = false
or irem(nr,7) = 0 and ‘isprime/cyclotest‘(n,btor,7,r) = false then
RETURN(false)
;
for p from 3 while (numtheory[jacobi])(p^ 2-4,n)
<>
-1 do od;
evalb(‘isprime/TraceModQF‘(p,n+1,n) = [2, p])
fi
end

Répondre