Page 1 of 13

[Concours] Fais chauffer ta calto avec de l'arithmétique!

Unread postPosted: 31 Mar 2013, 21:48
by Adriweb
Salut à tous,

Cela fait quelques temps que l'on a pas organisé de concours, et voici donc ce manque comblé ;)
Nous organisons donc un concours, d'environ 5 semaines, mêlant bien l'algorithmie à l'arithmétique.


Introduction:
En mathématiques, un nombre premier palindrome est un nombre qui est à la fois premier et palindrome.

Un nombre premier est un entier naturel qui admet exactement deux diviseurs distincts entiers et positifs (qui sont alors 1 et lui-même).
Cette définition exclut 1, qui n'a qu'un seul diviseur entier positif ; elle exclut aussi 0, qui est divisible par tous les entiers positifs.
Par exemple 6 = 2 × 3 n’est pas premier et 21 = 3 × 7 ou 7 × 3 non plus. Mais 11 est premier car 1 et 11 sont les seuls diviseurs de 11.
Les nombres premiers sont donc dans l’ordre 2, 3, 5, 7, 11...

Un nombre palindrome est un nombre dont l’écriture (ici en base 10) se lit de la même façon de gauche à droite et de droite à gauche.
Par exemple, tous les nombres de un chiffre sont palindromes: 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.
Les palindromes de deux chiffres sont: 11, 22, 33, 44, 55, 66, 77, 88 et 99.
101 est un nombre palindrome à trois chiffres.

Les nombres premiers palindromes sont donc: 2, 3, 5, 7, 11, 101, 131...

Sujet :
Créer un programme le plus rapide possible pour trouver le n-ième nombre premier palindrome.

Plateforme :
Le candidat pourra réaliser sa participation sur, au choix:
  • TI-Nspire
  • TI-82Stats/83/76
  • TI-83+/84

Catégories:
La production du candidat concourrera dans l’une des catégories suivantes :
  • TI-Nspire
  • TI-82Stats/83/84/76

Langages :
  • TI-Basic Nspire
  • TI-Basic TI-82Stats/83/84/76
  • Assembleur TI-83+/84 (il ne doit pas y avoir besoin d’installer un shell/kernel)
  • Assembleur TI-82Stats/83/76 (il ne doit pas y avoir besoin d’installer un shell/kernel)
Note: sur les TI-82Stats/83/84, les combinaisons TI-Basic et assembleur sont autorisées.

Contraintes :
Sur TI-82Stats/83/84/76, le programme principal récupérera n dans la variable dernière réponse, et renverra le nième nombre premier palindrome en résultat utilisable dans les calculs suivants.
Par exemple pour obtenir le 42ème premier, on pourra taper:
  • pour un programme TI-Basic: 42:prgmPALPREM
  • pour un programme assembleur TI-83+/84: 42:Asm(prgmPALPREM
  • pour un programme assembleur TI-82Stats/83/76: 42:Send(9prgmPALPREM
Dans les trois cas, la commande renverra le nombre 18181 comme résultat dans l’écran de calculs.
Ce nombre devra être utilisable pour les calculs suivants (variable dernière réponse).

Sur TI-Nspire, le programme principal prendre la forme d’une fonction prenant un paramètre n et renvoyant le résultat. Par exemple, palprem(42) devra renvoyer le nombre 18181.
Le candidat ne doit pas utiliser de listes de nombres pré-calculés dans son algorithme, sous peine de disqualification directe.

Il est par ailleurs interdit d'utiliser des fonctions du genre isPrime() qui permettraient d'obtenir directement une réponse quant à une partie de l'énoncé, non seulement ça détruit l'intérêt du côté réflexion algorithmique, mais ce serait injuste pour ceux qui n'auraient pas cette fonction, entre autre... ;)

D'autre part, votre programme se doit de fonctionner sans avoir besoin de calcul formel (pour les Nspire : il doit marcher sur les non-CAS).

Notation :
La note finale sera sur 20 points, et le barème est le suivant :
  • 3 points pour le bon fonctionnement du programme
  • 10 points pour la rapidité d'exécution du programme (il sera testé et confronté aux concurrents sur des machines à performances identiques)
  • 3 points pour le respect du cahier des charges
  • 4 points pour une explication

Jury :
Les participations sont notées, de façon équitable selon un barème commun, par un jury dont la composition est la suivante :
  • Adriweb
  • Critor
  • Laurae
  • Levak
  • Lionel Debroux

Quand ? :
Le concours commence le Lundi 1er Avril 2013 et se termine le Dimanche 12 Mai à 23h59

Comment ? :
Pour participer, le candidat doit envoyer à l'adresse électronique info@tiplanet.org un e-mail avec:
  • son adresse postale complète avec ses nom et prénom(s)
  • une adresse e-mail valide pour le contacter
  • la production attendue
  • toute autre information ou fichier jugé utile par le candidat concernant sa production
Le courrier électronique dûment rempli par la personne vaut bulletin de participation

Lots :
Grâce à notre partenariat avec TI-France et Jarrety, les gagnants de ce concours (un gagnant par catégorie/langage) se verront récompensés ainsi :
  • 1er prix: 1 calculatrice + 4 stickers TI-Planet
  • 2ème prix: 1 poster TI + 3 stickers TI-Planet
  • 3ème prix: 2 stickers TI-Planet
1er prix dans la catégorie Nspire : une TI-Nspire CX numérique
1er prix dans la catégorie TI-82/83/84 : une TI-84 Pocket.fr

Règlement complet :
Le règlement complet de ce concours, déposé légalement chez huissier, est disponible à cette adresse :
archives_voir.php?id=12093 ou sur UPECS.

Liste de nombres premiers palindromes :
Sur pastebin : http://pastebin.com/48FAy0Xe (jusqu'à 999727999, cette limite n'étant pas exhaustive)


A bientôt sur TI-Planet !
Hello everyone,

It has been time TI-Planet have not organized a contest, and here is the lack filled ;)
So we organize a contest, about 5 weeks, well mixing arithmetic and algorithmics.


Introduction:
In mathematics, a prime palindom number is a number which is both prime and palindromic.

A prime number is an integer that only admits two positive and integer divisors (which are 1 and itself).
This definition excludes 1, which has only one positive and integer divisor ; it excludes 0 too, which is divisible by all the positive integers.
For example 6 = 2 × 3 is not prime and 21 = 3 × 7 or 7 × 3 either. But 11 is prime because 1 and 11 are the only divisors of 11.
So, the prime numbers are, in order, 2, 3, 5, 7, 11...

A palindromic number is a number whose writing (in base 10) is read in the same way from left to right and from right to left.
For example, all the 1-digit numbers are palindromic: 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9.
The 2-digit palindroms are: 11, 22, 33, 44, 55, 66, 77, 88 and 99.
101 is a 3-digit palindromic number.

So, the prime palindromic numbers are: 2, 3, 5, 7, 11, 101, 131...

Subject :
Make a program fastest as possible to find the n-th prime palindromic number.

Plateform :
The candidate will perform its participation:
  • TI-Nspire
  • TI-82Stats/83/76
  • TI-83+/84

Categories:
The candidate's production will be judged in one of those categories:
  • TI-Nspire
  • TI-82Stats/83/84/76

Languages :
  • TI-Basic Nspire
  • TI-Basic TI-82Stats/83/84/76
  • TI-83+/84 Assembly NO SHELL (So, you can participate with Axe compiled for no shell)
  • TI-82Stats/83/76 Assembly NO SHELL
NB: on TI-82Stats/83/84,TI-Basic and assembly combinations are allowed.

Constraints :
On TI-82Stats/83/84/76, the program will catch n in the 'Ans' variable, and will send the nth prime palindromic number as a result in Ans.
For example, to obtain the 42th prime, we will type:
  • TI-Basic program: 42:prgmPALPREM
  • TI-83+/84 Assembly program: 42:Asm(prgmPALPREM
  • TI-82Stats/83/76 Assembly program: 42:Send(9prgmPALPREM
In each case, the program should send the result 18181 in Ans, reusable in the home screen for calculations.


On TI-Nspire, the main program should be a function which take the n parameter and which sends the result. For example, palprem(42) should answer 18181.

YOU MUST NOT USE a pre-calculated list of prime palindromic numbers in your program, directly under penalty of disqualification.

YOU MUST NOT USE functions like isPrime() which would provide a direct response, it destroys the value of algorithmic thinking, and it would be unfair to those who don't have this function... ;)

The program MUST run on not-CAS TI-Nspires.

Notation :
The final score will be on 20 points, and the scale is as follows:
  • 3 points for the proper functioning of the program
  • 10 points for the fast execution of the program (it will be tested and compared to competitors on identical machines with identical languages)
  • 3 points for the respect of the rules
  • 4 points for an explanation

Jury :
Participations are rated on an equitable basis according to a common scale by a jury whose composition is as follows:
  • Adriweb
  • Critor
  • Laurae
  • Levak
  • Lionel Debroux

When ? :
The contest starts Monday the 1st of April 2013 and finishs Sunday the 12th of May, 23h59 (GMT+1)

How ? :
To participate, candidates must send to the email address info@tiplanet.org :
  • complete mailing address with first and last name
  • a valid email address for contact
  • the expected production (8xp, 83p, tns)
  • any other information or file deemed useful by the candidate concerning its production
The e-mail correctly send is taken as an entry.

Lots :
Through our partnership with TI-France and Jarrety, the winners of the contest (one winner per category) will be rewarded with:
  • 1st price: 1 calculator + 4 TI-Planet stickers
  • 2nd price: 1 poster TI + 3 TI-Planet stickers
  • 3rd price: 2 TI-Planet stickers
1st price in the Nspire category: a TI-Nspire CX (not CAS)
1st price in the TI-82/83/84 category : a TI-84 Pocket.fr

Complete rules:
The complete rules for this contest, legally registered to an usher, are available on
TI-Planet or the UPECS website. (French)

Prime palindromic numbers list :
Sur pastebien : http://pastebin.com/3KzzEzFE (to 999727999, not an exhaustive limit)


See you soon on TI-Planet !

PS: I know I'm a bit late, because the contest has started...


(Thanks P-Rex for the translation :) )

Re: [Concours] Fais chauffer ta calto avec de l'arithmétique

Unread postPosted: 31 Mar 2013, 21:50
by nikitouzz
je participe en axe (rien ne me l'interdit ) seulement :

1)on ne peut pas aller en axe/asm a plus de 2^15 ....
2)c'est super dure de recuperer l'octets avant le programme car le registre hl n'est pas du tout le meme...

Re: [Concours] Fais chauffer ta calto avec de l'arithmétique

Unread postPosted: 31 Mar 2013, 21:57
by Laurae
blg_flg4B wrote:Lot : une calculatrice ? C'est vague. :p


1er prix dans la catégorie Nspire : une TI-Nspire CX numérique
1er prix dans la catégorie TI-82/83/84 : une TI-84 Pocket.fr

Re: [Concours] Fais chauffer ta calto avec de l'arithmétique

Unread postPosted: 31 Mar 2013, 21:59
by Adriweb
Pour l'Axe, c'est vrai que ce n'est pas explicitement interdit, mais il faut respecter les contraintes, sinon, il y aura des points en moins, forcément ;)

Re: [Concours] Fais chauffer ta calto avec de l'arithmétique

Unread postPosted: 31 Mar 2013, 22:01
by critor
Excellente initiative Adriweb! :bj:
On va voir ce que donnent les cours d'algorithmique/programmation que tout-le-monde a désormais au lycée. ;)

Re: [Concours] Fais chauffer ta calto avec de l'arithmétique

Unread postPosted: 31 Mar 2013, 22:03
by nikitouzz
les cours de programmation ?.... bah il disent au eleves que la boucle for() des TI ne permet d'incrementer que de un en un et que l'on ne peut pas changer.... si je faisais le cours ca se passerais suremenet mieux--'

Re: [Concours] Fais chauffer ta calto avec de l'arithmétique

Unread postPosted: 31 Mar 2013, 22:12
by blg_flg
Ou alors il n'y a carrément pas de cours d'algo/progra...

Re: [Concours] Fais chauffer ta calto avec de l'arithmétique

Unread postPosted: 31 Mar 2013, 22:28
by Loulou 54
Sympa ! :)
Mais est-il autorisé d'utiliser "IsPrime" sur Nspire ?

Re: [Concours] Fais chauffer ta calto avec de l'arithmétique

Unread postPosted: 31 Mar 2013, 23:01
by critor
Tout ce qui n'est pas interdit est autorisé.

Re: [Concours] Fais chauffer ta calto avec de l'arithmétique

Unread postPosted: 31 Mar 2013, 23:06
by Adriweb
Oops, c'est un oubli. Les fonctions qui permettraient de trouver ca directement sont interdites. Donc isPrime() est interdit, oui. (surtout que sur non-CAS, ca existe pas, non? Enfin meme, (je sais plus :P), ca pourrait etre injuste pour ceux qui ne l'utilisent pas...)