Inscription / Connexion Nouveau Sujet

1 2 3 +


Niveau autre
Partager :

Décomposition en facteurs premier en maple

Posté par
vincprof
15-12-06 à 20:47

bonsoir,
j'aimerai progrmmer un dfp en maple mais le problème c'est que je suis un bleu sur ce logiciel et que les codes trouvés sur le net pour faire ca sont imcompréhensibles...
quelqu'un pourrait-il m'aider?

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 20:57

Bonsoir,

Je ne sais pas trop quel est le language utilisé sous Maple, mais en gros le principe c'est de diviser successivement par tous les nombres premiers.

En gros tu commences par diviser ton nombre par 2. Si le résultat de la division est un nombre entier, ça signifie que ton nombre est divisible par 2. Tu affiches donc 2.
Tu continue à diviser par 2 et afficher 2 tant que ton nombre est divisible par 2.
Lorsqu'il n'est plus divisible par 2, tu passes à 3 puis 5 etc ...

Posté par
stokastik
re : Décomposition en facteurs premier en maple 15-12-06 à 21:02


Certes mais encore faut-il faire un prog pour obtenir la liste des nombres premiers dans ce cas...


Maple ne fait pas ça tout seul ??

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 21:06

Non, pas forcement, déjà à partir de 3 on peut aller de 2 en 2, et ensuite, on affichera par exemple jamais 10 comme diviseur car on aura divisé auparavant par 2 et par 5.

Maintenant c'est sur que c'est pas le programme le plus rapide du marché mais bon, ça n'est pas le but je pense ..

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 21:19

bonsoir
non en effet, pour un programme comme ca je ne recherche pas la rapidité..
que pensez vous de cet algo : (en fait je cherche a obtenir les pi et les ni pour pouvoir les réutiliser après)
a est donné
p:=2
while a 1 do
   if a modulo p =0
   then (n:=n+1 & a:=a/p)
   else p:=p+1
  end if
end while

cepandant il me manque les commandes qui sortent les pi et les ni...

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 21:28

Je viens de regarder le language Maple, et les end if et end while n'existe pas, il faut mettre fi et od .

Le problème là, c'est que par exemple si ton nombre est divisible 3 fois par 2 ( exemple 8), tu tu va faire afficher 2 et 4 comme nombre premier.

Pour les pi et les ni tout dépend ce que tu compte fait, les ni ce sont els exposant et les pi les nombres premiers ?

Je pense que faut les stocker dans un tableau, je vais voir ça comme ça march esous Maple

Posté par
Cauchy
re : Décomposition en facteurs premier en maple 15-12-06 à 21:30

Bonsoir,

au pire tu fais juste un petit prog avant estpremier et tu rajoutes un test.

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 21:31

Je capte pas le rapport avec ce qu'il veut faire, Cauchy ?

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 21:38

le test isprime existe sous maple mais dans le cas présent vu que je ne recherche pas la rapidité (c'est le résultat qui m'intéresse et je n'ai pas tro le temp de me pencher sur l'efficaité du prog) ca ne ferai qu'alourdir le programme.

et sinon, comment fait-on pour rappeler ce programe dans un autre? y a t-il une commande? les pi sont les premier et les ni sont les puissance.

pour cauchy : mon but est de retrouver le programme qui a permis de trouver les listes en page 7.

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 21:42

Les listes en page 7 ?

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 21:44

http://www.emis.de/journals/JIS/VOL6/Ufnarovski/ufnarovski.pdf
voir ce doc.

Posté par
Cauchy
re : Décomposition en facteurs premier en maple 15-12-06 à 21:48

Rouliane c'etait pour ne regarder que les diviseurs premiers en fait je sais pas si j'ai bien compris c'est quand tu as dis ca:

Citation :
Le problème là, c'est que par exemple si ton nombre est divisible 3 fois par 2 ( exemple 8), tu tu va faire afficher 2 et 4 comme nombre premier.


Par contre la je viens de voir c'est pas exactement les nombres premiers page 7 non?

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 21:52

non, en effet. en page 7 ce sont tout les nombres"a" pour qui l'équation n'=a n'a pas de solution. puis il donne la liste du nombres de primitives d'un nombre donné.

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 21:59

c bon pour la fonction qui me permet de rapeller le programme, il faut utiliser des procédure.. et j'ai compri comment on fait.

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 22:24

Pour ton programme sinon, voici une idée même si la synthaxe n'est peut-etre par correcte car je ne connais pas trop maple :

dfp:=proc(a)
k:=-1;
P=array(1..a);
N=array(1..a);

for i from 2 to a do
P[i]:=0;
N[i]:=0;
od;

for i from 2 to sqrt(b) do
if (a mod i)=0 then
   k:=k+1;
   while ( a mod i) =0 do
         p[k]=i;
         N[k]=N[k]+1;
         a:=a/i;
   od;
od;
od;
k:=k+1;
P[k]=a;
N[k]=1;
end;



voilà, avec ça tu devrais pouvoir stocker tes valeurs de n et p

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 22:35

Une petite explication :

Citation :
k:=-1;
P=array(1..a);
N=array(1..a);


initialisation de k à -1 et on définit 2 tableaux N et P qui vont contenir les pi et les ni

Citation :
for i from 2 to a do
P[i]:=0;
N[i]:=0;
od;

ces tableaux sont initialisés à 0 ( tous les termes sont nuls)
ça n'a pas forcément beaucoup d'utilité là, mais ça peut en avoir ensuite pour retrouver les facteurs premiers.

Citation :
k:=k+1;
P[k]=a;
N[k]=1;


Il ne faut pas oublier le dernier terme ( qui peut etre 1 )
exemple :  si on recherche les facteurs premiers de 22, on se rend compte que la boucle précédente ne va prendre en compte que le 2. Il ne faut pas oublier de rajouter le 11 à la fin.


Citation :
for i from 2 to sqrt(b) do
if (a mod i)=0 then
   k:=k+1;
   while ( a mod i) =0 do
         p[k]=i;
         N[k]=N[k]+1;
         a:=a/i;
   od;
od;
od;


boucle qui permet de tester tous les diviseurs de a.
la boucle while permet d'affecter la valeur de i ( et donc du facteur premier ) dans le tableau pi, puis on incrémente le ni.

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 22:47

ok je comprend tout ca mais je vois cependant pas l'utilité d'initialiser k à -1.

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 22:54

dans un tableau P, le premier élément est P[0], le deuxième P[1] etc ...
J'initialise k à -1 parce que des que je rentre dans la boucle if, j'incrémente de 1  ( afin d'enregistrer le premier nombre premier dans P[0], le deuxième dans P[1] etc ... )

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 22:56

ok d'accord merci des explications.

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 22:57

de rien

teste le pour voir si ça marche, parce que y'aura de toute façon des erreur

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 23:08

> dfp2:=proc(a)
> k:=-1;a1:=a;
> P:=array(1..a);N:=array(1..a);
> for i from 2 to a do
> P[i]:=0;
> N[i]:=0;
> od;
> for i from 2 to sqrt(a1) do
> if (a1 mod i)=0 then
>    k:=k+1;
>    while a1 mod i=0 do
>       P[k]=i:
>       N[k]=N[k]+1:
>       a1:=a1/i:
>    od:
> fi:
> do:
> k:=k+1;
> P[k]=a;
> N[k]=1;
> end:


Warning, premature end of input


voic ce que j'ai tapé ce qui est en gras c'est ce que maple me dit...

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 23:09

il fallait mettre a en variable local, sinon maple nous insulte dès qu'on veut toucher à a..

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:10

c'est un point virgule à la fin de end , non ?

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 23:13

le ; veut dire en maple "affiche" et : signifie "enregitre mais n'affiche pas"  mais j'ai qd meme testé a tout hasard mais ca ne marche quand meme pas.

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:15

j'ai trouvé, t'as mis un do au lieu d'un od à la fin

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 23:19

ok c'étai ca!

mais maintenat il di ca:
> dfp2(78);
>
>
Error, (in dfp2) final value in for loop must be numeric or character

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:25

essaye de remplacer sqrt(a1) par a1 au début de la boucle for

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:29

j'ai trouvé, tu dois remplacer sqrt(a1) par evalf(sqrt(a1))

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:29

evalf((sqrt(a1))

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 23:30

> dfp2(78);
>
>
Error, (in dfp2) 1st index, 0, smaller than lower array bound 1

on a ca maintenant...

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:31

ok, initialise k à 0 au début et pas -1, car apparemment sous maple les indices des tableaux commencent à 1

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 23:35

ok donc ya un pb : je renvoi tout :

> dfp2:=proc(a)
> k:=0;a1:=a;
> P:=array(1..a);N:=array(1..a);
> for i from 2 to a do
> P[i]:=0;
> N[i]:=0;
> od;
> for i from 2 to evalf(sqrt(a1)) do
> if (a1 mod i)=0 then
>    k:=k+1;
>    while a1 mod i=0 do
>       P[k]=i:
>       N[k]=N[k]+1:
>       a1:=a1/i:
>    od:
> fi:
> od:
> k:=k+1;
> P[k]=a;
> N[k]=1;
> end:

>
>
>
>
Warning, `k` is implicitly declared local to procedure `dfp2`

Warning, `a1` is implicitly declared local to procedure `dfp2`

Warning, `P` is implicitly declared local to procedure `dfp2`

Warning, `N` is implicitly declared local to procedure `dfp2`

Warning, `i` is implicitly declared local to procedure `dfp2`

> dfp2(78);
>
>

                                0 = 1

je ne compren pas le résultat...

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:39

déjà met des ; au lieu des :

ensuite, c'est bizarre parce qu'il ne devrai rien afficher.

lance le programme pour une valeur petite (genre 10 )
et afficher ensuite [N1] et P[1]

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 23:44

> dfp2:=proc(a)
> k:=0;a1:=a;
> P:=array(1..a);N:=array(1..a);
> for i from 2 to a do
> P[i]:=0;
> N[i]:=0;
> od;
> for i from 2 to evalf(sqrt(a1)) do
> if (a1 mod i)=0 then
>    k:=k+1;
>    while a1 mod i=0 do
>       P[k]:=i;
>       N[k]:=N[k]+1;
>       a1:=a1/i;
>    od;
> fi;
> od;
> k:=k+1;
> P[k]=a;
> N[k]=1;
> end:

>
>
>
>
Warning, `k` is implicitly declared local to procedure `dfp2`

Warning, `a1` is implicitly declared local to procedure `dfp2`

Warning, `P` is implicitly declared local to procedure `dfp2`

Warning, `N` is implicitly declared local to procedure `dfp2`

Warning, `i` is implicitly declared local to procedure `dfp2`

> dfp2(10);
> P[1];
> N[1];

                                0 = 1


                                 P[1]


                                 N[1]

voici ce que ca donne. je n'y comprend plus rien!!

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:45

je crois avoir trouvé :

remplace " if (a1 mod i)=0 then " par " if evalb((a1 mod i)=0)=true then "

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:46

pareil dans le while

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 23:52

non ca donne la meme chose... dsl

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:53

tu peux recopier ton code ici stp

Posté par
vincprof
re : Décomposition en facteurs premier en maple 15-12-06 à 23:55

> dfp2:=proc(a)
> k:=0;a1:=a;
> P:=array(1..a);N:=array(1..a);
> for i from 2 to a do
> P[i]:=0;
> N[i]:=0;
> od;
> for i from 2 to evalf(sqrt(a1)) do
> if evalb((a1 mod i)=0)=true then
>    k:=k+1;
>    while evalb(a1 mod i=0)=true do
>       P[k]:=i;
>       N[k]:=N[k]+1;
>       a1:=a1/i;
>    od;
> fi;
> od;
> k:=k+1;
> P[k]=a;
> N[k]=1;
> end:

>
>
>
>
`Warning, \`k\` is implicitly declared local to procedure \`dfp2\`\n`
`Warning, \`a1\` is implicitly declared local to procedure \`dfp2\`\n`
`Warning, \`P\` is implicitly declared local to procedure \`dfp2\`\n`
`Warning, \`N\` is implicitly declared local to procedure \`dfp2\`\n`
`Warning, \`i\` is implicitly declared local to procedure \`dfp2\`\n`
> dfp2(10);
> P[1];
> N[1];

                                0 = 1


                                 P[1]


                                 N[1]

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 15-12-06 à 23:59

Copie que cette partie là ( en rajoutant le end à la fin )

> dfp2:=proc(a)
> k:=0;a1:=a;
> P:=array(1..a);N:=array(1..a);
> for i from 2 to a do
> P[i]:=0;
> N[i]:=0;
> od;

puis tappe P[1] pour savoir ce que ça donne

Posté par
vincprof
re : Décomposition en facteurs premier en maple 16-12-06 à 00:06

dfp3:=proc(a)
>  k:=0;a1:=a;
>  P:=array(1..a);N:=array(1..a);
>  for i from 2 to a do
>  P[i]:=0;
>  N[i]:=0;
>  od;
> end:Warning, `k` is implicitly declared local to procedure `dfp3`

Warning, `a1` is implicitly declared local to procedure `dfp3`

Warning, `P` is implicitly declared local to procedure `dfp3`

Warning, `N` is implicitly declared local to procedure `dfp3`

Warning, `i` is implicitly declared local to procedure `dfp3`

> dfp3(10);

                                  0

> P[1];
>
>

                                 P[1]

Posté par
vincprof
re : Décomposition en facteurs premier en maple 16-12-06 à 00:07

je n'arrive vraiment pas a saisir pourquoi il renvoi "P[1]" comme ca!!

Posté par
suistrop
re : Décomposition en facteurs premier en maple 16-12-06 à 00:09

ca a peut etre aucun rapport mais
si N entier ^^

ifactor(N);

donne ce que tu cherches

Apres peut etre que tu dois faire un projet...

Posté par
vincprof
re : Décomposition en facteurs premier en maple 16-12-06 à 00:12

bonsoir suistrop euh plutot bonjour,
ici N et P sont des tableaux de valeurs....

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 16-12-06 à 00:13

y'a un truc qui m'intrigues dans ton programme, c'est que tu ne devrais pas avoir de < devant chaque ligne, mais uniquement devant la 1ere ligne il me semble

Posté par
vincprof
re : Décomposition en facteurs premier en maple 16-12-06 à 00:15

oui je sais c'est le copié collé de maple a firefox qui les rajoute. ca n'y est pas dans maple....

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 16-12-06 à 00:15

si tu as un < devant chaque ligne, chaque ligne est pour lui un nouveau programme, donc quand t'écris P[1] pour l'ordi t'a pas défini P[1] enfin je pense

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 16-12-06 à 00:15

ah ok désolé...

Posté par
suistrop
re : Décomposition en facteurs premier en maple 16-12-06 à 00:16

vincprof
salut
je vais peut etre te faire repété mais j ai pas compris ce que tu cherchais a faire :$
j ai lu le truc en anglais du charabia...

Posté par
Rouliane
re : Décomposition en facteurs premier en maple 16-12-06 à 00:16

remplace a par a1 dans les 'array' et à la fin, juste avant le end, mets un RETURN ( P[1]);

1 2 3 +




Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1677 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !