Tiers
Il existe un existe une infinité de fraction égales à un demi. Parmi celles-ci certaines s'écrivent avec les neuf chiffres de un à neuf. C'est le cas par exemple pour 6729⁄13458 ou 7293⁄14596.
Trouver toutes les fractions égales à un tiers, dans lesquelles tous les chiffres de un à neuf apparaissent une et une seule fois.
Ici il s'agit de trouver un moyen d'obtenir les chiffres qui compose un nombre. En fait deux nombres plus exactement ou l'un est trois plus grand que l'autre.
"Les chiffres de 1 à 9 , une et une seule fois". Cela signifie que la liste des chiffres qu'on aura obtenu doit être exactement la liste [1,2,3,4,5,6,7,8,9]. (Une intéressante aurait été d'inclure le zéro mais non demandée dans l'énoncé)
Ainsi construisons une fonction qui renvoie une liste des chiffres qui compose un nombre :
def getDigits(number):
digits=[]
while(number//10 !=0):
digits.append(number%10)
number=number//10
digits.append(number%10)
return digits
Comme se sont des listes on peut se servir de l'opérateur "+" pour fusionner les résultats des deux nombres qui nous intéresse.
Ensuite pour négliger l'ordre des chiffres au sein de cette fraction on ordonnera les éléments de la liste pour comparer cette liste à la liste [1,2,3,4,5,7,8,9].
Enfin on bouclera sur un nombre d'entiers suffisants pour obtenir des résultats
Par ailleurs, pour borner les recherches on peut considérer les nombres jusqu'à 10 000 car si n<10^p =>3.n<10.n<10^(p+1) et comme p+(p+1)=9 (car neuf chiffres), p=4
On trouve : 5823/17469 et 5832/17496
Articles Similaires
Trouver les dénominateurs des fractions successives issue de l'ensemble ordonné de toutes les fractions réduites que l'on peut former avec les entiers de 1 à 99 comprise entre 0 et 1 dont les numérateurs sont 13 , 24 et 11.
Lire la suite
