### 6.7.12 Reste entier de la division euclidienne : irem remain smod mods mod %

- irem (ou remain) désigne le reste entier r de la division euclidienne des deux entiers a et b donnés en argument (a=b*q+r avec 0≤ r< b).
  Pour les entiers de Gauss, on choisit q pour b*q soit le plus proche possible de a et on peut montrer que l’on peut choisir r tel que |r|2 ≤ |b|2/2.
  On tape :
  irem(148,5)
  On obtient :
  3
  irem travaille avec des entiers longs ou des entiers de Gauss.
  On tape :
  irem(factorial(148),factorial(45)+2 )
  On obtient :
  111615339728229933018338917803008301992120942047239639312
  ou encore
  irem(25+12*i,5+7*i)
  On obtient :
  -4+i
  On a :
  a−b*q=−4+i et on a |−4+i|2=17<|5+7*i|2/2=74/2=37
- smod ou mods est préfixé et a 2 entiers comme arguments.
  smod ou mods désigne le reste entier symétrique s de la division euclidienne des deux entiers a et b donnés en argument (a=b*q+s avec −b/2<s ≤ b/2).
  On tape :
  smod(148,5)
  On obtient :
  -2
- mod ou % sert à désigner un nombre modulaire.
  mod ou % est infixé et renvoie un nombre modulaire. Attention % doit être suivi d’un espace.
  On tape :
  148 mod 5
  ou
  148 % 5
  On obtient :
  -2 % 5
  ce qui veut dire que 148 mod 5=-2 mod 5 et que 148 mod 5 et −2 % 5 sont des éléments de Z/5Z (voir 6.35 pour avoir les opérations possibles dans Z/5Z).

Remarque
Si on veut passer d’un élément de Z/5Z à un élément de Z, on tape % 0 : On tape :

(148% 5)% 0

On obtient :

-2