%%% % Criteres de divisibilite %%% \setKVdefault[Critere]{Div=2,Remarque=false,All=false,RemarqueAll=false} \NewDocumentCommand\Critere{om}{% \useKVdefault[Critere]% \setKV[Critere]{#1}% \xdef\PfCListeARetenirCriteres{}% \ifboolKV[Critere]{All}{% \begin{itemize} \item \CritereDeux{#2}% \item \CritereTrois{#2} \item \CritereQuatre{#2} \item \CritereCinq{#2} \item \CritereNeuf{#2} \item \CritereDix{#2} \end{itemize} \ifx\bla\PfCListeARetenirCriteres\bla% \else \setsepchar{,}\ignoreemptyitems% \readlist*\PfCAfficheDivCriteres{\PfCListeARetenirCriteres}% \reademptyitems% \xdef\PfCNumListe{}% En appliquant les critères de divisibilité connus, \num{#2} est donc divisible par \num{\PfCAfficheDivCriteres[1]}% \xintifboolexpr{\PfCAfficheDivCritereslen>1}{\xintFor* ##1 in{\xintSeq{2}{\PfCAfficheDivCritereslen}}\do{% \xintifForLast{ et }{ ; }\num{\PfCAfficheDivCriteres[##1]}% }% }{}.% \ifboolKV[Critere]{RemarqueAll}{\\\textbf{Remarque} : La liste des diviseurs de \num{#2} est \ListeDiviseur{#2}.}{}% \fi% }{% \IfStrEqCase{\useKV[Critere]{Div}}{% {2}{\CritereDeux{#2}}% {3}{\CritereTrois{#2}}% {4}{\CritereQuatre{#2}}% {5}{\CritereCinq{#2}}% {9}{\CritereNeuf{#2}}% {10}{\CritereDix{#2}}% }% }% }% \NewDocumentCommand\CritereDeux{m}{% \StrRight{#1}{1}[\PfCCriDeuxUnite]% Le chiffre des unités de \num{#1} est \num{\PfCCriDeuxUnite}. Donc \num{#1} % \modulo{\PfCCriDeuxUnite}{2}% \ifnum\remainder=0\relax% est divisible par 2.% \ifboolKV[Critere]{Remarque}{\\\textbf{Remarque} : $\num{#1}=\num{\fpeval{#1/2}}\times2$.}{}% \xdef\PfCListeARetenirCriteres{\PfCListeARetenirCriteres,2}% \else% n'est pas divisible par 2.% \fi% }% \NewDocumentCommand\CritereTrois{m}{% La somme des chiffres de \num{#1} est \PfCSommeChiffres{#1}. Comme \num{\PfCSMSomme} % \modulo{\PfCSMSomme}{3}% \ifnum\remainder=0\relax% est divisible par 3, alors \num{#1} est aussi divisible par 3.% \ifboolKV[Critere]{Remarque}{\\\textbf{Remarque} : $\num{#1}=\num{\fpeval{#1/3}}\times3$.}{}% \xdef\PfCListeARetenirCriteres{\PfCListeARetenirCriteres,3}% \else% n'est pas divisible par 3, alors \num{#1} n'est pas divisible par 3.% \fi% }% \NewDocumentCommand\CritereQuatre{m}{% \ifnum#1<100% \quotient{#1}{4}% \modulo{#1}{4}% \ifnum\remainder=0\relax Comme $\num{#1}=\num{\the\intquotient}\times4$ alors \num{#1} est divisible par 4. \xdef\PfCListeARetenirCriteres{\PfCListeARetenirCriteres,4}% \else Comme $\num{#1}=\num{\the\intquotient}\times4+\num{\the\remainder}$ alors \num{#1} n'est pas divisible par 4. \fi \else \StrRight{#1}{2}[\PfCCriQuatreUnite]% \num{#1} se termine par \num{\PfCCriQuatreUnite}. % \modulo{\PfCCriQuatreUnite}{4}% \ifnum\remainder=0\relax% Comme \num{\PfCCriQuatreUnite} est divisible par 4, alors \num{#1} est divisible par 4.% \ifboolKV[Critere]{Remarque}{\\\textbf{Remarque} : $\num{#1}=\num{\fpeval{#1/4}}\times4$.}{}% \xdef\PfCListeARetenirCriteres{\PfCListeARetenirCriteres,4}% \else% Comme \num{\PfCCriQuatreUnite} n'est pas divisible par 4, alors \num{#1} n'est pas divisible par 4.% \fi% \fi }% \NewDocumentCommand\CritereCinq{m}{% \StrRight{#1}{1}[\PfCCriCinqUnite]% Le chiffre des unités de \num{#1} est \num{\PfCCriCinqUnite}. Donc \num{#1} % \modulo{\PfCCriCinqUnite}{5}% \ifnum\remainder=0\relax% est divisible par 5.% \ifboolKV[Critere]{Remarque}{\\\textbf{Remarque} : $\num{#1}=\num{\fpeval{#1/5}}\times5$.}{}% \xdef\PfCListeARetenirCriteres{\PfCListeARetenirCriteres,5}% \else% n'est pas divisible par 5.% \fi% }% \NewDocumentCommand\CritereNeuf{m}{% La somme des chiffres de \num{#1} est \PfCSommeChiffres{#1}. Comme \num{\PfCSMSomme} % \modulo{\PfCSMSomme}{9}% \ifnum\remainder=0\relax% est divisible par 9, alors \num{#1} est aussi divisible par 9.% \ifboolKV[Critere]{Remarque}{\\\textbf{Remarque} : $\num{#1}=\num{\fpeval{#1/9}}\times9$.}{}% \xdef\PfCListeARetenirCriteres{\PfCListeARetenirCriteres,9}% \else% n'est pas divisible par 9, alors \num{#1} n'est pas divisible par 9.% \fi% }% \NewDocumentCommand\CritereDix{m}{% \StrRight{#1}{1}[\PfCCriDixUnite]% Le chiffre des unités de \num{#1} est \num{\PfCCriDixUnite}. Donc \num{#1} % \ifnum\PfCCriDixUnite=0\relax est divisible par 10.% \ifboolKV[Critere]{Remarque}{\\\textbf{Remarque} : $\num{#1}=\num{\fpeval{#1/10}}\times10$.}{}% \xdef\PfCListeARetenirCriteres{\PfCListeARetenirCriteres,10}% \else% n'est pas divisible par 10.% \fi% }%