Page 1 sur 1

Savoir si un nombre est parfait ou non (TI-36X Pro)

Message non luPosté: 24 Nov 2017, 18:00
de grosged
Ti64Cli++ vient de me suggérer un nouveau défi : déterminer si un nombre est parfait ou non . Bonne idée !
Voici comment on pourrait aborder ça:

En définissant op=
    ans
    Σ (x(int(1-fPart(ans/x)
    x=1
On a juste à entrer un nombre et valider par [enter], puis faire [2nd] [op] ...
Après un temps de calcul plus ou moins long , nous voyons affichée la somme des diviseurs du nombre en question.
S'il cette somme vaut le double du nombre, alors nous avons affaire à un nombre parfait ;)

Re: Savoir si un nombre est parfait ou non (TI-36X Pro)

Message non luPosté: 24 Nov 2017, 19:39
de Ti64CLi++
Est-ce que cela ne serait pas possible de faire :
op=
    ans
    Σ (x(int(1-fPart(ans/x)))) / 2 - ans + 1
    x=1
Cela renverrait 1 en cas de reussite et tout autre valeur en cas de non reussite

Apres peut etre est-ce un probleme de place, je ne sais pas, je n'ai pas ma TI 36X Pro avec moi :?

Re: Savoir si un nombre est parfait ou non (TI-36X Pro)

Message non luPosté: 24 Nov 2017, 21:31
de grosged
Oui, je vois où tu veux en venir. Dans ce cas l'idéal serait d'avoir 1 pour VRAI, et 0 pour FAUX ;)
Je me souviens avoir pallié l'absence de fonctions de test (voir viewtopic.php?f=26&t=15143#p169312 )

L'équivalence de x=y ...
Code: Tout sélectionner
1-min(1;abs(x-y)*10^9)
va bien nous aider :D

Ce qui nous donne...

    op=
    .......................ans
    1-min(1,|2ans-Σ (xint(1-fPart(ans/x)))|10^9
    ........................x=1


A titre d'exemple, la TI-36X Pro mets environ 17 secondes pour vérifier le nombre "parfait" 496 (pas trop mal, non? B-) )

Re: Savoir si un nombre est parfait ou non (TI-36X Pro)

Message non luPosté: 25 Nov 2017, 00:27
de Ti64CLi++
Test avec le prochain ;)