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} |
Partager