Sujet : Re: Résoudre cette égalité
De : talon (at) *nospam* niobe.lpthe.jussieu.fr (Michel Talon)
Groupes : fr.sci.mathsDate : 06. Jun 2023, 10:23:43
Autres entêtes
Organisation : Guest of ProXad - France
Message-ID : <647eed0f$0$7665$426a34cc@news.free.fr>
References : 1 2 3 4
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0
Le 06/06/2023 à 08:08, robby a écrit :
Tu veux dire 10 doit diviser x,
yep.
et encore c'est pas garanti.
qu'est-ce que j'ai raté ? il peut y avoir un diviseur commun à X et X-1 ?
a divise b*c implique a divise c si a est premier à b, en particulier si a est premier et ne divise pas b. Avec 10=2*5 tu es refait car
2 peut diviser b et 5 diviser c mais 10 ne divise ni b ni c.
En ce qui concerne python c'est un langage qui n'est pas fait pour traiter correctement les rationnels, sauf à utiliser un module supplémentaire. Par exemple on peut obtenir les surprises suivantes:
>>> 2/3
0
>>> 2./3
0.6666666666666666
>>>
Contrairement à Common Lisp qui gère nativement les rationnels (et maxima aussi). Par exemple en lisp:
* (+ 1/35 1/14)
1/10
Noter qu'on peut introduire la fraction 1/35 en tant que telle. On peut aussi détailler le quotient:
* (+ (/ 1 35) (/ 1 14))
1/10
et la contagion flottante:
* (+ (/ 1 35.0) (/ 1 14))
0.1
On n'obtient pas de résultat à la con genre 2/3 -> 0 il faut une conversion explicite:
* (float (/ 2 3) 1.0d0)
0.6666666666666666d0
* (floor (/ 2 3))
0
2/3
Ici floor produit la partie entière et le reste, noter que le reste garde sa précision complète.
-- Michel Talon