Ce programme est sous licence Creative Commons 2.0 BY-NC-ND
Ce cours n'a pas été mis à jour depuis 9 années. Considérez donc son contenu avec précaution car certaines parties peuvent être obsolètes.Description :
Premiers! version description: 1.0
Pourquoi l'utiliser?
- Premiers! est le programme le plus complet de Planète Casio pour étudier les nombres premiers, il offre une interface graphique esthétique et interactive très facile à prendre en main ainsi que de nombreuses fonctionnalités!
- Aucun sous programme, pour faciliter l'utilisation et réduire l'encombrement de la liste de programmes.
- Possède des fonctionnalités uniques sur Planète Casio!
- Comme tous les autres programmes de RevenARTS il offre un menu qui simplifie l'utilisation et améliore l\'expérience de l'utilisateur.
Fonctionnalités:
- Test de primalité:
Détails:
- Permet de déterminer si un nombre donné est premier ou non, renvoie le nombre
premier précédent et suivant ainsi qu'une estimation du rang (e.g. 5 = 3ème).
- Graphique:
Détails:
- Permet d'afficher une représentation graphique de la répartition des nombres
premiers.
- Tracé linéaire: les pixels blancs représentent les nombres premiers (1 en haut à
gauche jusqu'à 8192 en bas à droite).
- Spirale d'Ulam: décrit une spirale carrée en partant du centre, les pixels blancs
représentent les nombres premiers.
- Décomposition en facteurs premiers:
Détails:
- Décompose le nombre entier en ses facteurs premiers s'il n'est pas premier, sinon
vous informe de la primalité du nombre.
- Les facteurs premiers sont stockés dans la liste 1 et également affichés pendant
l\'exécution du programme.
- Les grands nombres sont plus longs à décomposer car il n'existe simplement pas
d'algorithme efficace pour la décomposition en facteurs premiers.
- Générateur de liste de nombres premiers:
Détails:
- Permet de créer une liste de nombres premiers entre deux valeurs entrées par
l'utilisateur, la liste ne peut pas dépasser 999 nombres (e.g. de 1 à 7907, 999
nombres premiers).
- Affiche des informations telles que le dernier nombre testé, le dernier nombre
premier trouvé, le rang de ce nombre (Nième) et l'avancement du calcul (avec un
pourcentage et une barre de chargement).
Commandes:
À tout moment vous pouvez retourner au menu principal ou quitter le programme en appuyant respectivement sur : [MENU] ou [EXIT] (pression pendant ~ 1s).
Quitter avec [AC] est déconseillé car des erreurs peuvent survenir.
Mises à jour:
Aucune mises à jours pour le moment.
Votre ressenti:
- Comme toujours n'hésitez pas à commenter et signaler les éventuels bugs à corriger et améliorations à apporter.
Mot de passe: 31415
(le mot de passe vous permet de profiter pleinement du programme sans le modifier par inadvertance)
Wow, évite de changer la police s'il te plaît : cette feature existe mais juste pour mettre du code, potentiellement.
RevenARTS a écrit : - Les grands nombres sont plus longs à décomposer car il n'existe simplement pas d'algorithme efficace pour la décomposition en facteurs premiers.
Oh si, il y en a ! Comment le fais-tu ?
Ce que tu peux faire, c'est générer une liste de nombres premers inférieurs ou égaux à la racine du nombre et les tester eux (déjà). Ensuite tu dédoubles la liste en prenant leurs complémentaires.
Pour l'ordre dans le test de primalité, je suppose que tu utilises la fonction pi ? (ordre = x/ln(x)) ?
Bien sur qu'il existe des algorithmes, ce que je veux dire c'est qu'il n'existe pas d'algorithme efficace (rapide même pour les grands nombres), et que le temps de calcul augmente très rapidement dès que l'on rajoute quelques chiffres. C'est quand même sur cela que repose la cryptologie pour la plupart des protocoles modernes
Ben, si tu testes naïvement un à un tous les nombres inférieurs, ta complexité est en O(n), alors que si tu analyses intelligement, tu est en O(√x/ln(x)), si ce n'est pas déjà plus efficace... ^^'
J'ai déjà fais ce que je peux faire de plus efficace, en passant d'un nombre premier au suivant et en testant la divisibilité, après c'est pas parce qu’un nombre est grand qu'il sera long à décomposer ex: 72000 = 2^6*3^2*5^3 et 3599 = 59*61
ici 3599 est plus long à décomposer...
En gros j'avais les 3 premiers (2, 3, 5) dans ma liste
N était initialisé à 7
Tant que 1
Pour chaque nombre de la liste
Si n est divisible par ce nombre
On quitte la boucle Pour et on passe directement au suivant
Fin_pour
Si on n'est pas passé au suivant, alors on ajoute N à la liste
N + 2 -> N
Fin Tant que
Bah moi pour l'instant le générateur de liste commence toujours avec un 0, car j'avais un problème pour ajouter une valeur dans la liste quand celle-ci est vide, et j'ai vraiment la flemme de regarder maintenant.
Mais je suis très fière de ma barre de chargement, pour une fois qu'elle affiche vraiment le chargement xD
Tout simplement parce-que le générateur de liste ne génère pas forcement à partir de 1, si vous aviez lu la description ou regardé le GIF vous auriez vu que l'utilisateur choisi le nombre de départ et le nombre de fin, donc les premiers nombres ne sont pas forcément 2, 3, 5
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd