π
<-

[Mini-Challenge Basic #6] : Nombres parfaits

Sous-forums réunissant les mini-challenges en TI-Basic Nspire

[Mini-Challenge Basic #6] : Nombres parfaits

Unread postby davidElmaleh » 06 Jul 2014, 18:20

Le but de ce défi est de créer une fonction isperfect(n) qui prend un compte un entier n et qui renvoie true s'il est parfait et false sinon.

La fonction sera de la forme:
Code: Select all
Define isperfect(n)=
Func
votreCode
EndFunc


Vous serez noté sur la rapidité d’exécution du programme en fonction de la grandeur du nombre en entrée.
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

Re: [Mini-Challenge Basic #6] : Nombres premiers

Unread postby Bisam » 06 Jul 2014, 18:33

Euh, si le critère est la taille, il existe des fonctions... super non optimales au niveau du temps d'exécution !
Et puis, il y a déjà eu un concours sur les nombre premiers palindromes il y a peu de temps...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Mini-Challenge Basic #6] : Nombres premiers

Unread postby davidElmaleh » 06 Jul 2014, 18:41

Je voulais faire le même concours mais pour les nombres parfait. Tu crois que je dois changer?

EDIT: et dans ce cas, le critère serait la rapidité et non la taille
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

Re: [Mini-Challenge Basic #6] : Nombres premiers

Unread postby Adriweb » 06 Jul 2014, 19:00

(réponse d'avant l'édit du sujet)

Pour isprime2() : en théorie, Return mod(n!,n^(2))=n*(n-1) marche et est possiblement le plus court (?), mais forcément, il va pas aller bien loin..... :P
(source : formule de Gary Detlefs, sur oeis)

Pas encore réfléchi pour les nombres parfaits.

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Mini-Challenge Basic #6] : Nombres premiers

Unread postby davidElmaleh » 06 Jul 2014, 19:06

D'ou le but de créer l'algo le plus rapide et non le plus court ;)

EDIT : J'ai cru que tu parlais des nombres parfaits
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

Re: [Mini-Challenge Basic #6] : Nombres parfaits

Unread postby Adriweb » 06 Jul 2014, 19:20

Pour les nombres parfaits, voici ma proposition :

Return ∑(i*int(n/i),i,1,n-2)=1+∑(i*int((n-1)/i),i,1,n-1)

C'est une formule montrée par Ruiz (cf. mathworld)

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Mini-Challenge Basic #6] : Nombres parfaits

Unread postby davidElmaleh » 06 Jul 2014, 19:52

J'ai une solution plus rapide et beaucoup plus simple
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

Re: [Mini-Challenge Basic #6] : Nombres parfaits

Unread postby davidElmaleh » 06 Jul 2014, 20:04

(Dsl pour le double post)

Voila les statistiques pour l'instant pour les participations actuelles
Adriweb : isperfect(10^6) = false en 9 sec. 34 /
davidElmaleh : isperfect(10^6) = false en moins de 100 ms / isperfect(10^9) = false en 1 sec. 57 / isperfect(137438691328) = true en 25 sec.
Image
User avatar
davidElmalehProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 19.6%
 
Posts: 409
Images: 9
Joined: 14 Oct 2012, 23:30
Location: Paris 19
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI*

Re: [Mini-Challenge Basic #6] : Nombres parfaits

Unread postby Adriweb » 06 Jul 2014, 20:11

Ah mais j'ai pas cherché la rapidité, juste une formule "plutôt courte".
Je pense pas que la vérification triviale soit plus court,e mais je n'ai même pas essayé... :P

Après, il y a sans doute mieux, c'est sur ^^

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: [Mini-Challenge Basic #6] : Nombres parfaits

Unread postby Adriweb » 06 Jul 2014, 20:58

Bon ben la solution triviale est plus courte (et plus rapide) que la formule de ma proposition d'avant ^^

Return n=sum(seq(when(mod(n,i)=0,i,_),i,1,n-1))

(j'ai utilisé _ au lieu de 0 car c'est un poil plus rapide :D (un test avec 1 million de fois montre une différence de 0.1 seconde, d'après le timer du Lua)

Edit : et puisque que c'est sur la rapidité qu'on est évalué :
Return when(mod(n,2)≠0,false,n=sum(seq(when(mod(n,i)=0,i,_),i,1,n-1)))

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.9%
 
Posts: 14839
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Next

Return to Mini-Challenges

Who is online

Users browsing this forum: ClaudeBot [spider] and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2207 utilisateurs:
>2180 invités
>20 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)