Niveau 10.5 du livre de problèmes Rust

Задание 1

Étant donné un nombre. Affichez à l'écran le processus de décomposition du nombre en facteurs premiers, comme à l'école.

Задание 2

Étant donné un tableau bidimensionnel arbitraire :

rust[
  [11, 12, 13, 14, 15],
  [21, 22, 23, 24, 25],
  [31, 32, 33, 34, 35],
  [41, 42, 43, 44, 45],
  [51, 52, 53, 54, 55],
}

Mettez à zéro les éléments de sa diagonale principale :

rust[
  [ 0, 12, 13, 14, 15],
  [21,  0, 23, 24, 25],
  [31, 32,  0, 34, 35],
  [41, 42, 43,  0, 45],
  [51, 52, 53, 54,  0],
}
Задание 3

Créez une fonction qui définira la forme correcte du nom commun après le nombre. Voici comment cette fonction devrait fonctionner :

rustfunc(1, "pomme", "pommes", "pommes"); // affichera "1 pomme"
func(2, "pomme", "pommes", "pommes"); // affichera "2 pommes"
func(3, "pomme", "pommes", "pommes"); // affichera "3 pommes"
func(4, "pomme", "pommes", "pommes"); // affichera "4 pommes"
func(5, "pomme", "pommes", "pommes"); // affichera "5 pommes"

Voici un exemple pour les nombres à deux chiffres :

rustfunc(11, "pomme", "pommes", "pommes"); // affichera "11 pommes"
func(12, "pomme", "pommes", "pommes"); // affichera "12 pommes"
func(21, "pomme", "pommes", "pommes"); // affichera "21 pomme"
func(23, "pomme", "pommes", "pommes"); // affichera "23 pommes"

Notre méthode doit fonctionner pour les nombres de n'importe quelle longueur :

rustfunc(1223421, "pomme", "pommes", "pommes"); // affichera "1223421 pomme"