J’ai découvert récemment le projet Euler, site proposant de résoudre quelques problèmes mathématiques (environ 400 quand même). Ces problèmes sont à priori à résoudre grâce à quelques lignes de codes.
Le problème numéro 4 consiste à trouver le plus grand palindrome constitué du produit de deux nombres à trois chiffres.
Je vous invite bien sûr à rechercher par vous-même la solution avant d’aller plus loin…
L’énoncé complet du problème est
(en français)
Un nombre palindrome est un nombre qui peut être lu dans les deux sens. Le plus large palindrome constitué du produit de deux nombres à deux chiffres est 9009 = 91 x 99.
Quel est le plus grand palindrome constitué du produit de deux nombres à trois chiffres ?
(en anglais)
Largest palindrome product
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99.
Find the largest palindrome made from the product of two 3-digit numbers.
Voici l’algorithme que je vous propose :
///
/// Compute the largest palindrome made from the product of two 3-digit numbers.
/// Calcul le plus grand palindrom fabrique à partir du produit de deux nombres à 3 chiffres
///
///
public static Palindrome ComputePalindrome()
{
Palindrome MyPalindrome = new Palindrome();
for (int i = 999; i > 100; i--)
{
for (int j = 999; j > 100; j--)
{
int produit = i * j;
//If product
La classe Palindrome étant juste un objet tout bête contenant les champs suivant :
public class Palindrome
{
#region fields
private int _FactorA = 0;
private int _FactorB = 0;
private int _Product = 0;
#endregion
}
Bien sûr, ce code est optimisable pour des recherches de produit de grands chiffres. On peut, par exemple, vérifier la condition suivant laquelle les palindromes de chiffres pairs sont divisibles par 11. (Exemple 1221 = 11*111. D’ailleurs en l’occurrence pour cet exemple nous avons un joli palindrome : ‘111 * 11 = 1221 = 11 * 111’).
En l’occurrence la réponse au problème est 906609 = 993 * 913.
Vous pouvez aussi télécharger le programme de calcul : Palindrome.zip (C'est un exe, et il n'y a pas de virus 😉 )
Résoudre cet algorithme est d’ailleurs proposé par la société Rail Concept (basé dans le Vaucluse) comme test de présélection d’embauche. Rail Concept est un bureau d'études ferroviaires,
Voici d’ailleurs quelques conseils pour réussir ce test :
Voilà, si vous souhaitez travailler à proximité d’Avignon et postuler à un poste de développeur chez eux, sachez qu’ils cherchent quelqu’un en ce moment (septembre 2013). La société à l’air sympa et leurs projets très intéressant au niveau développement. Surtout s’ils arrivent à mettre en pratique ce qu’il demande pour le test de recrutement, ce que j’espère pour eux. En ce qui me concerne, je n’ai malheureusement pas encore rencontré de société dans ce cas...
Et pour aller plus loin je vous propose de lire :
Voila 10 ans que je n'avais pas écrit un petit texte pour souhaiter un joyeux… Read More
Cela faisait un petit moment que je n'avais pas créé de billets sur ce blog.… Read More
Explorez l'importance des user stories dans la méthode Agile à travers une vidéo humoristique qui… Read More
Parce que, contrairement à ce que l'on pourrait penser ce soir qu'il pleut des cordes,… Read More
Un peu d’humour en attendant le résultat des élections présidentielles françaises. Read More
Si vous n'avez pas accès à l'interface graphique de votre Linux, vous pouvez modifier l'horloge… Read More
View Comments