Bonjour à tous.
Je souhaiter créer une macro qui prendrait comme argument un nombre entier positif et afficherait sa décomposition en facteurs premiers.
Voici ce que j'ai créé:
Ce programme fonctionne mais il ne me satisfait pas entièrement parce que j'aurai voulu ne pas afficher uniquement la décomposition, mais également les différentes étapes de calcul.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 \documentclass{article} \usepackage[frenchb]{babel} \usepackage{Fp} \usepackage{xstring} \usepackage{multido} \usepackage{ifthen} \usepackage{amsmath} \usepackage[load-configurations = abbreviations]{siunitx}% utiliser commande \num pour écriture correcte des nombres \sisetup{locale = FR,detect-all,} % % \newcommand*\eaddto[2]{% \edef\tmp{#2}% \expandafter\addto \expandafter#1% \expandafter{\tmp} } % % \begin{document} \FPeval{\a}{clip(1547)} \FPeval{\b}{clip(\a)} % \FPeval{\compteur}{clip(2)} % \whiledo{\b>1}{% \FPeval{\q}{round(\b/\compteur,5)} \IfInteger{\q}{% \eaddto\listdiv{{\compteur}}% \FPeval{\b}{clip(\q)}% \eaddto\listquo{{\q}}% }{% \FPeval{\compteur}{clip(1+\compteur)}% } } % % % Affichage \StrLen{\listdiv}[\c] % longueur chaine \FPeval{\cbis}{clip(\c-1)} % % \begin{align*} \num{\a} & =\multido{\n=1+1}{\cbis}{\StrChar{\listdiv}{\n}\times}\StrChar{\listdiv}{\c}\\ \end{align*} \end{document}
Quand je remplace la commande dans les balises align* par :
j'ai un message d'erreur. J'en ai déduis qu'on ne pouvait pas cumuler les multido. Mais je n'ai pas trouvé d'autres solutions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 \multido{\n=1+1}{\c}{% \num{\a} & = \multido{\m=1+1}{\n}{\StrChar{\listdiv}{\m}\times} \StrChar{\listquo}{\n}\\ }
Quelqu'un aurait une piste ?
Partager