Curriculum and Labs for Engineering Education

cancel
Showing results for 
Search instead for 
Did you mean: 

Challenge mathématiques #2 : Suppression des digits identiques

Bonjour,

C'est parti pour le deuxième challenge !

Encore une fois, on va jouer avec des nombres et les règles sont simples :

Pour une fourchette donnée comprise entre 0 et un maximum il faut déterminer par programmation le nombre de nombres qui possèdent au moins deux digits identiques. Exemple: 11, 223, 3334, 12340560 ...

On travail sur des nombres entiers bien évidement.

Les résultats attendus sont le nombre de nombres à digits identiques et le temps d'exécution.

Le maximum sera compris entre 10 000 000 et 50 000 000.

Il est interdit d'utiliser des tableaux pré-enregistré de résultats pour des gammes données. Je ferais des tests sur des valeurs au hasard pour vérifier que le code s'adapte bien. Si le résultat est incorrect, le code sera rejeté du classement final.

Par contre, il n'est pas obligatoire de vérifier chaque nombre.

Exemple :

Lorsque mon programme arrive à la valeur 1000 a examiner, j'ai une série de digits identiques qui précède un autre digit restant 1000. Donc je n'ai pas besoin de vérifier 1001, 1002...1009  et incrémenter directement le deuxième digit identique mais il faut penser à compter les nombres passés et vérifier qu'on incrémente pas au delà du maximum.

Pour info entre :

- 0 et 10 il y a 0 nombre avec des digits qui se répètent

- 0 et 50 il y a 4 nombres avec des digits qui se répètent (11, 22, 33, 44)

- 0 et 1000 il y a 262 nombres avec des digits qui se répètent

- 0 et 10000 il y en a 4726

Le benchmark se fera fait de la manière suivante :

BenchmarkV2.png

On ne mesure donc le temps d'exécution du calcul et du chargement des VIs (. On fera une moyenne sur 10 mesures.

C'est le temps moyen qui sera pris en compte pour les résultats.

Le benchmark sera fait de manière à recharger le VI principal à chaque appel. de cette façon, impossible de garder en mémoire les valeurs précédentes du VI.

Pour celà, merci de suivre les consignes suivantes (c'est surtout pour m'éviter de le faire pour chacun de vous) :

- appeler son vi principal : main_votrepseudo.vi

- Mettre une commande de type de I32 en entrée connecté en haut à gauche sur le modèle de connecteur par défaut avec comme nom : Maximum

- Mettre un connecteur en sortie de type I32 connecté en haut à droite sur le modèle de connecteur par défaut avec le nom : Nb Nombres

Benchmark Main VI.png

Pour éviter les problèmes d'antivirus qui bloquent les pièces jointes et parce que tout le monde n'a pas l'application builder, on fera les benchs en mode développement.

Pour soumettre votre code, postez un petit message dans les réponses, et envoyer moi votre code par email directement : maxime.renaud@ni.com. J'ai pas trouvé mieux pour le moment.

La comparaison se fera sur le même PC pour tout le monde avec une version française de LabVIEW 2012 à jour.

La date limite pour participer est le 04 janvier 2013 (comme ca vous avez de quoi vous occuper pendant les vacances de Noël). Je ferais les benchmarks, la semaine suivante.

Voila, je crois que j'ai tout dit, mais n'hésitez pas si vous avez des questions.

Bonne chance à tous.

Edit du 03/12/2012 :

L'objectif de ce challenge est de développer des applications optimisées et de découvrir de nouvelle méthode ou approche pour programmer des applications LabVIEW. Il n'y a rien d'autre à gagner (pour le moment du moins) que la reconnaissance des autres développeurs de la communauté.

Pour ce deuxième challenge, il est important de faire un code qui s'adapte à n'importe quelle valeure du maximum qui ne dépassera pas 50 000 000 (entre 100 et 50 000 000). La comparaison des performances sera effectuée dans une fourchette comprise entre 10 000 000 et 50 000 000. Je regarde les codes sources et je rappelle que dans le réglement il est indiqué qu'il faut déterminer le nombre de digits de nombres contenant des digits identiques dans la fourchette donnée.

Modification de la méthode de Benchmark.

Merci

Résultats (09/01/2013) :

Tout d'abord bonne année 2013 et merci à tous les participants.

Les résultats sont tombés :

Resultats 1.png

Le gagnant de ce deuxième challenge est donc ozimmer.

micael_ manque de peut de garder sont titre, mais le temps moyen est à la faveur du "magicien d'OZ"

yledieu n'est pas loin derrière

Moi-même et nacerito complètent le classement.

Les VIS sont disponibles dans les archives en pièces jointes. J'ai fait un enregistrement en version 2009 de LabVIEW pour ceux qui n'auraient pas la dernière version de LabVIEW, par contre, je n'ai pas vérifié que cela fonctionne en LabVIEW 2009, mais je ne pense pas qu'il y ait de problèmes.

Merci à tous, et à bientôt pour un nouveau challenge.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Comments
Herlag
Member
Member
on

Avec quelle valeur de "Valeur max" sera fait le test ?

J'imagine (a priori) que les performances relatives de différents codes peuvent dépendre de cette valeur...

HL

ramses64
Active Participant
Active Participant
on

"Le maximum sera compris entre 10 000 000 et 50 000 000"

on ne peut pas être plus précis...

V-F
MaximeR
Active Participant
Active Participant
on

Bonjour,

Effectivement, les performances peuvent varier. En fait, j'ai mis cette limite pour éviter de fournir un code qui ne fasse le calcul que pour une valeure précise. J'aurais pu être plus vicieux et dire que le max se fera entre 100 et 100 000 000. D'après les premiers tests que j'ai fait, ce n'est pas dans cette fourchette la qu'on observe les plus grandes différences, cela apparaît plus quand on passe de 1 000 000 à 10 000 000 par exemple.

Dans tous les cas, la comparaison se fera sur une seule et même valeure identique à tout le monde et je le noterai dans la publication des résultats.

Bonne chance.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Marie_Remondière
NI Employee (retired)
on

Moi qui suis incapable de coder, je peux choisir la valeur stp ???

MaximeR
Active Participant
Active Participant
on

On verra le jour-j et si et seulement si tu es sage .

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

EricC.
Active Participant
Active Participant
on

bonjour

Auriez-vous quelque temps de calcule de base, histoire de savoir comment se placer avec sont propore code.

Merci

Ingénieur d'Application / Développeur LabVIEW Certifié (CLD)
Application Engineer / LabVIEW Certified Developer (CLD)
MaximeR
Active Participant
Active Participant
on

Bonjour,

Avec un code que j'ai réalisé, je suis à 460 ms pour 10 000 000 et 1340 ms pour 50 000 000. Mais je sais qu'on peut le faire plus vite

Maxime

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

yledieu
Member
Member
on

Est-ce qu'on parle des nombres qui contiennent uniquement deux digits identiques, ou bien deux digits au minimum ?

Exemple : est-ce que 222 et 3333 sont "éligibles" ?

Yohann L.
MaximeR
Active Participant
Active Participant
on

Bonjour,

Ce sont bien les nombres qui contiennent au moins 2 digits identiques. Donc 111 doit être compté par exemple.

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Nacerito
Member
Member
on

J'ai envoyé mon code moi , bonne chance à tous ^^.

Nacer M. | Certified LabVIEW Architect
MaximeR
Active Participant
Active Participant
on

Merci Nacerito.

Bonne chance à toi.

A tous, n'oubliez pas de poster un message quand vous m'envoyé votre code. Cela me permet de vérifier que je l'ai bien reçu, car lors de la première édition, des emails ne sont pas passés.

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Marie_Remondière
NI Employee (retired)
on

Salut à tous,

Comme tout le monde vous demande des trucs je me suis dit, que moi aussi j'allais vous en demander !

Parce que certains d'entre vous participent mais ne suivent pas cet espace, et ça, ça ruine mes stats !  Alors attention c'est parti.... RAPPEL !

Depuis cette page : ni.com/communaute-labview

Sur la droite vous verrez ceci :

suivre-cet-espace.png

1) Cliquez sur "suivre cet espace"

2) Cliquez sur " Recevoir des avis par courriel" si vous voulez être tenu au courant de ce qui se passe en temps réel

3) Seulement si le coeur vous en dit... vous pouvez inviter des amis !

Merci à tous, vous avez ma reconnaissance éternelle...

Bon weekend !

Marie

ps : Nacer, Bienvenue !!!

Greg_S.
Active Participant
Active Participant
on

Bonjour,

Sur quelle configuration a été testé votre code ?

Merci.

Greg

Greg S.
CNRS
LV 7.1 8.2 8.6 2009 2011 2012 2013 2014
LPMC - CNRS
N'oubliez pas de complimenter cela fait toujours plaisir.
MaximeR
Active Participant
Active Participant
on

Bonjour,

Les tests ont été réalisé sur un PC portable avec LabVIEW 2012 (32 bits) en version française à jour. La machine de test est un Dell Latitude E6410, 4 coeurs (i7 M640 à 2,80 GHz), 8 GO de RAM, Win 7 64 Bits Français avec toutes les mises à jour Windows.

Je ne sais pas encore si je vais utiliser le même PC pour ce challenge, mais il y a de fortes chances. Dans tous les cas, le type de processeur serait toujours un Intel i7 avec autant ou plus de coeurs et pour la RAM, minimum 4 Go.

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

yledieu
Member
Member
on

Maxime, est-ce qu'il est possible de te poser des questions "confidentielles" si on a peur que la question puisse donner des indications aux autres concurrents ?

Yohann L.
MaximeR
Active Participant
Active Participant
on

Bonjour,

Bien sur, vous pouvez me contacter directement par email à l'adresse indiquée dans le réglement, ou par un message sur la communauté. Si la question et la réponse est pertinente pour tous les participants, je partagerai l'inforamtion.

Cordialement.

Maxime

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

yledieu
Member
Member
on

Il n'y a rien d'autre à gagner (pour le moment du moins) que la reconnaissance des autres développeurs de la communauté.

C'est déjà énorme !

Yohann L.
O. Zimmermann
Member
Member
on

Bonjour,

J'ai réfléchi à ce challenge et je le trouve extrêmement intéressant et amusant !

Cependant il y a plusieurs points qui me dérangent.

Tout d'abord si un algorithme risque d'être appelé plusieurs fois de suite dans des cas défavorables, le bon sens veut qu'il consacre une petite partie de sa mémoire à ses précédents appels de façon à répondre immédiatement si on lui demande la même chose plusieurs fois de suite.

=> Pour cette raison je suggère que le benchmark injecte 10 valeurs différentes (non pas 10 fois la même valeur comme actuellement).

Ensuite, pour gagner en performance on est amené à faire des algorithmes plus complexes qui peuvent montrer de grands écarts de performance entre cas favorables et défavorables. J'en ai un qui (quoique rapide par rapport à ton essai Maxime) montre des écarts de 1 à 100 dans la gamme des nombres à 8 chiffres.

=> Pour mieux refléter la performance globale de l'algorithme, je suggère à nouveau que le benchmark injecte 10 valeurs différentes.

=> Choisir des valeurs test dans un intervalle commençant à zéro (10 000 000 actuellement) me semblerait également préférable. Il me parait plus agréable d'optimiser une solution générale qu'un algorithme spécifique - c'est mon opinion !

Ma dernière question concerne la "légalité" d'une solution qui me semble radicale dans le problème proposé, à savoir l'utilisation de tableaux de valeurs pré-calculées.

En effet dans la mesure où un algorithme déjà assez rapide permet de calculer non seulement les valeurs de la gamme du benchmark mais même toutes les valeurs de la fonction (puisqu'à partir de 11 chiffres, même un peu avant, la solution devient triviale) l'optimisation qui tue consiste à s'appuyer sur des valeurs pré-calculées pour réduire la part de la "force brute" presque autant qu'on veut.

=> Maxime, peux-tu fixer une règle sans ambigüité (...) sur l'usage de valeurs pré-calculées??

oz

MaximeR
Active Participant
Active Participant
on

Bonjour,

J'ai modifié la méthode de Bench empéchant de garder en mémoire des valeurs dans des registres ou autre en obligeant à recharger le VI à chaque appel.

Pour le nombre de test, je garderai la même valeure à chaque fois et c'est simplement un choix de ma part. J'ai également ajouté le fait qu'il est obligatoire d'avoir un code qui soit capable de fonctionner avec toutes les valeurs jusqu'à 50 000 000.

En espérant avoir répondu à vos questions.

Cordialement.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

CyGa
Active Participant Active Participant
Active Participant
on

Bonjour,

Tu indiques dans la dernière (? ) modification de l'énoncé : "Je regarde les codes sources et je rappelle que dans le réglement il est indiqué qu'il faut déterminer le nombre de digits identiques dans la fourchette donnée."

Si je relis dans les premières phrase de l'enoncé, il est demandé de compter "le nombre de nombres qui possèdent au moins deux digits identiques"..

On compte quoi alors les digits ou les nombres ?

CLA, CTA, LV Champion
View Cyril Gambini's profile on LinkedIn
This post is made under CC BY 4.0 DEED licensing
yledieu
Member
Member
on

Maxime, peux-tu nous indiquer ce que tu entend précisément par "déterminer par programmation" et surtout ce que ça exclut ?

Yohann L.
MaximeR
Active Participant
Active Participant
on

Bonjour,

Pour zyl7, il faut bien donner le nombre de nombres contenant des digits identiques, l'erreur dans l'énoncé est corrigée. Merci.

Pour ce que j'entends par programmation, c'est que le résultat doit être calculé ou déterminé par programmation. On ne peut pas utiliser des constantes issu d'un calcul préliminaire pour arriver au résultat final.

Par exemple: on pourrait imaginer utiliser son code pour calculer le nombre de nombres à digits identiques dans la fourchette 0 - 9 999 999. Je garde la valeur en constante et il me suffirait ensuite de calculer et d'ajouter à la constante le nombre de nombres restant jusqu'au maximum utilisé lors de la comparaison des performances. De cette façon on gagne pas mal de temps. Mais cette solution serait rejetée. car la valeur dans la fourchette entre 0 et 9 999 999 n'est pas calculée ou déterminée par programmation dans le code fournit.

L'utilisation de formules pour déterminer/calculer le nombre de nombres contenant des digits identiques est accepté. Je ne peux pas vous interdire de chercher des algorithmes existant et il est d'ailleurs souvent recommandé de ne pas réinventer la roue. De plus, il n'est pas mentionné qu'il faut forcément utilisé la force brute pour y arriver, d'ailleurs dans l'exemple que j'ai donnée, il n'est pas nécessaire de passer par toutes les valeurs. Cependant, je n'utilise pas de constantes, j'ai fait simplement de la logique pour optimiser mon code.

Ce que j'ai envie de voir pour ces challenges, c'est que si l'énoncé demande de faire une opération, on fasse le calcul dans LabVIEW. Si l'énoncé demandait simplement de faire l'addition de 2+2 et de retourner le résultat, je voudrais voir un code qui fait 2+2, pas simplement une constante qui renvoit 4.

Je n'ai pas envie de rendre les sujets trop compliqués ou trop restricitfs.

A noter également que les codes seront mis à disposition par la suite, et que chacun pourra regarder comment cela a été implémenté, alors vous serez vous même juge des autres et ce sera l'occasion de découvrir comment telle ou telle fonction a été implémenté. Et si on utilise des techniques contestables, je ne suis pas sur que vous aurez à y gagner.

Bonne chance à tous et surtout que le meilleur gagne.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

yledieu
Member
Member
on

Je viens d'envoyer mon code à Maxime.

Alea jacta est...

Yohann L.
MaximeR
Active Participant
Active Participant
on

Bonjour,

Merci pour les premiers à avoir envoyé leurs codes. Par contre, merci de suivre les consignes sur le nommage des fichiers pour simplifier le travail de test des VIs.

Cordialement.

Maxime

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Micael_
Active Participant
Active Participant
on

Ayé, moi aussi j'ai envoyé mon code.

Cordialement,


Micaël DA SILVA
TiTou
Trusted Enthusiast
Trusted Enthusiast
on

Ca vient du projet Euler?


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

MaximeR
Active Participant
Active Participant
on

Code bien reçu. Merci Micael_

MaximeR

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

MaximeR
Active Participant
Active Participant
on

Bonjour Antoine,

Peux tu préciser un peu ta question ?

Merci

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

TiTou
Trusted Enthusiast
Trusted Enthusiast
on

Ca ressemble pas mal aux problèmes posés dans le projet euler : http://projecteuler.net/problems

Mais je trouve ça très bien.


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

MaximeR
Active Participant
Active Participant
on

Bonjour,

C'est un sujet qu'on avait utilisé en interne à la base, et je l'ai réutilisé. Je ne connaissais pas ce site, mais ca pourrait être une bonne source d'inspiration. Je pense qu'effectivement, l'idée de base est la même.

Merci.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

TiTou
Trusted Enthusiast
Trusted Enthusiast
on

MaximeR wrote:


                       

C'est un sujet qu'on avait utilisé en interne à la base


                   

NI organise des "coding challenge" en interne?


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

MaximeR
Active Participant
Active Participant
on

Ca nous arrive pour s'amuser.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

TiTou
Trusted Enthusiast
Trusted Enthusiast
on

406 problèmes disponibles sur le projet Euler, y'a de quoi s'amuser un moment!

J'ai comme projet de publier mes solutions écrites en LabVIEW dans un repo sur GitHub.

Y'a quelqu'un ici qui "s'amuse" sur le projet Euler?

Edit :

pas bcp selon les stats du site :

euler_02.png

euler_01.png


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

O. Zimmermann
Member
Member
on

Je t'ai envoyé mon code Maxime... le "programme" de mes vacances n'est pas sous LabVIEW 🙂

O. Zimmermann
Member
Member
on

Je ne connaissais pas "projet Euler" et je crois que j'y jetterais volontiers un coup d'oeil (ou un VI) à l'occasion...

TiTou
Trusted Enthusiast
Trusted Enthusiast
on

ozimmer wrote:


                       

Je ne connaissais pas "projet Euler" et je crois que j'y jetterais volontiers un coup d'oeil (ou un VI) à l'occasion...


                   

Attention, quand on y met les doights, ça devient vite addictif.


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

MaximeR
Active Participant
Active Participant
on

Bonjour ozimmer,

Code bien reçu et fonctionnel en LV 2012. Bonne chance et bonne vacances loin des Faces avant et des diagrammes LV

Pour le projet Euler, les sujets sont bien costauds.

Maxime R.  

  CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
  CTA - Certified TestStand Architect / Architecte TestStand Certifié

Micael_
Active Participant
Active Participant
on

C'est bien pour ça que j'hésite à mettre les doigts dans l'engrennage

Cordialement,


Micaël DA SILVA
TiTou
Trusted Enthusiast
Trusted Enthusiast
on

Les 20 premiers sont accessibles après les "faciles" deviennent rares...


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Micael_
Active Participant
Active Participant
on

Ca y est, je suis cuit

Euler.png

Cordialement,


Micaël DA SILVA
TiTou
Trusted Enthusiast
Trusted Enthusiast
on

Au boulot, maintenant que t'es lancé faut faire monter les stats de LabVIEW dans le classement, pour ça il faut résoudre plus de 6% des problèmes, soit 25... allé!

Mon friend key est : 2501404134263_55eede03429cb1bb4e84e9348dd9314a


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

yledieu
Member
Member
on

Félicitations à vous deux Ozimmer et Micael_

Yohann L.
Marie_Remondière
NI Employee (retired)
on

Oui bravo !

Micael_
Active Participant
Active Participant
on

Félicitations Ozimmer !

Cordialement,


Micaël DA SILVA
yledieu
Member
Member
on

Je vois que micael_ et moi sommes partis probablement de la même source d'inspiration.

C'est à dire la formule de calcul du nombre d'arrangements sans répétition, mais j'ai peut être fait l'erreur d'utiliser la fonction Permute.vi fournie par LabVIEW plutot qu'une boucle plus simple et sans doute plus rapide pour les valeurs de n et k que nous utilisons.

Yohann L.
Micael_
Active Participant
Active Participant
on

Effectivement, nous avons utilisé le même algo basé sur la combinatoire.

C'est vrai que c'est dommage pour la fonction permute: j'ai fait le test en remplaçant dans ton code la fonction Labview de base par le Akn que j'ai fait et tu passerais en tête du classement, en tout cas sur mon ordi !

Cordialement,


Micaël DA SILVA
yledieu
Member
Member
on

Micael_ a écrit:


                       

C'est vrai que c'est dommage pour la fonction permute: j'ai fait le test en remplaçant dans ton code la fonction Labview de base par le Akn que j'ai fait et tu passerais en tête du classement, en tout cas sur mon ordi !                   

En effet, sur mon ordi aussi. ça m'apprendra a faire confiance aux trucs fournis par NI .

Plus sérieusement, je pense que c'est l'appel à la dll dans la fonction n! qui est le plus pénalisant.

Yohann L.
O. Zimmermann
Member
Member
on

Ouf !! Ca s'est joué à un cheveu 🙂

C'est un succès un peu insatisfaisant pour moi cependant, parce que j'accorde beaucoup d'importance à la lisibilité du code et... ici j'ai vraiment l'impression d'avoir écrit un truc incompréhensible. Rapide, mais incompréhensible (code optimisé moins clair, réunion de plusieurs algorithmes...).

Et puis je n'ai pas complètement réussi à généraliser l'algorithme principal. Je pense qu'on pourrait gagner encore un petit facteur (2 à 10 ?) en le faisant. J'y ai pensé un peu mais la perspective de devoir reprendre mon implémentation me donnait mal à la tête... 🙂 Je veux bien faire équipe si quelqu'un est intéressé (!!).

Je n'ai pas pu examiner les solutions concurrentes (mon HDD est mort pendant les vacances...) mais le seul fait que leur principe puisse être résumé en une phrase mérite des félicitations.

TiTou
Trusted Enthusiast
Trusted Enthusiast
on

Intéressé par une primitive "is prime?" ?


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

yledieu
Member
Member
on

C'est quoi le but ? ça doit pouvoir se coder par nous même ça, non ?

http://www.wikihow.com/Check-if-a-Number-Is-Prime

Yohann L.
Contributors