diff --git a/README.md b/README.md index 1ff1518..c8366b2 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/). | **utf8ToBin(s)** | UTF-8 vers Binaire | - s : la valeur à convertir | | **binToUtf8(s)** | Binaire vers UTF-8 | - s : la valeur à convertir | | **convertRomanArabicNumbers(nombre)** | Convertis un nombre arabe en nombre romain. | - nombre : le nombre à convertir | +| **armstrongNumber(nombre)** | Vérifie si un nombre fait partie des nombres d'Armstrong ou non. | - nombre : le nombre à tester | ## La liste des Fonctions Annexes : | Nom | Description | Paramètre(s) | diff --git a/img/function-image/armstrongNumber.png b/img/function-image/armstrongNumber.png new file mode 100644 index 0000000..631509c Binary files /dev/null and b/img/function-image/armstrongNumber.png differ diff --git a/php/config.php b/php/config.php index a4936e6..9a46505 100644 --- a/php/config.php +++ b/php/config.php @@ -73,6 +73,11 @@ switch ($currentpage) { $description = "Convertis un nombre arabe en nombre romain."; $image = 'https://function.divlo.fr/img/function-image/convertRomanArabicNumbers.png'; break; + case '/views/function-views/armstrongNumber.php': + $title = "Nombre d'Armstrong"; + $description = "Un nombre d'Armstrong est un nombre qui est égal à la somme de ses chiffres portés à la puissance du nombre de chiffres le composant. Cette fonction permet de savoir si un nombre fait partie des nombres d'Armstrong ou non."; + $image = 'https://function.divlo.fr/img/function-image/armstrongNumber.png'; + break; default: $title = 'Erreur 404'; $description = "Cette page n'existe pas!"; diff --git a/scripts/fonctions_principales.js b/scripts/fonctions_principales.js index a56ee98..80dc0ba 100644 --- a/scripts/fonctions_principales.js +++ b/scripts/fonctions_principales.js @@ -311,4 +311,23 @@ function convertRomanArabicNumbers(nombre) { }) return chiffresRomains; +} + +// Vérifie si un nombre fait partie des nombres d'Armstrong ou non +function armstrongNumber(nombre) { + let nombreString = nombre.toString(); + let nombreStringLength = nombreString.length; + + let result = 0; + let resultString = ""; + for (let i = 0; i < nombreStringLength; i++) { + result = result + parseInt(nombreString[i])**nombreStringLength; + resultString = resultString + " + " + nombreString[i] + "" + nombreStringLength + ""; + } + + if (result === nombre) { + return `${formatNumberResult(nombre)} est un nombre d'Armstrong, car ${resultString.slice(2)} = ${formatNumberResult(result)}.`; + } else { + return `${formatNumberResult(nombre)} n'est pas un nombre d'Armstrong, car ${resultString.slice(2)} = ${formatNumberResult(result)}.`; + } } \ No newline at end of file diff --git a/scripts/main.js b/scripts/main.js index 3514b49..1488da6 100644 --- a/scripts/main.js +++ b/scripts/main.js @@ -225,6 +225,22 @@ $(function () { } }); + $("#submitArmstrongNumber").click(function() + { + let numbersValue = $('#numberToTest').val(); + + if(isEmptyValue(numbersValue)) { + $('.results').html(emptyMessageError); + } + else if (!isNaN(parseInt(numbersValue))) { + let result = armstrongNumber(parseFloat(numbersValue.replace(/\s/g,''))); + $('.results').html(result); + } + else { + $('.results').html(messageError); + } + }); + /* Permet d'afficher l'heure en temps réel sur le footer */ window.onload = realDateTime('realDateTime'); diff --git a/views/function-list.php b/views/function-list.php index f4700e8..149b056 100644 --- a/views/function-list.php +++ b/views/function-list.php @@ -56,6 +56,10 @@