Category: Développement

arXivLabs : Collaboration communautaire sur les fonctionnalités d'arXiv

2025-05-28
arXivLabs : Collaboration communautaire sur les fonctionnalités d'arXiv

arXivLabs est une plateforme permettant aux développeurs et aux chercheurs de créer et de partager de nouvelles fonctionnalités arXiv directement sur le site web d'arXiv. Les participants, individus et organisations, adhèrent aux valeurs d'arXiv : ouverture, communauté, excellence et confidentialité des données utilisateur. arXiv s'engage envers ces valeurs et ne collabore qu'avec des partenaires qui les partagent. Vous avez une idée pour améliorer la communauté arXiv ? Explorez arXivLabs !

Développement

Multithreading sur Super Mario Bros. avec un émulateur NES : Une prouesse étonnamment simple

2025-05-28
Multithreading sur Super Mario Bros. avec un émulateur NES : Une prouesse étonnamment simple

L'auteur a implémenté le multithreading dans Super Mario Bros. sur un émulateur NES (FCEUX) à l'aide d'un plugin Lua, sans modifier le code principal de l'émulateur. En tirant parti de la fonctionnalité de sauvegarde d'état de l'émulateur, différents états du jeu ont été traités comme des threads distincts. Des primitives de synchronisation telles que les mutex et les variables de condition ont été implémentées en utilisant des zones spécifiques du jeu, permettant aux utilisateurs d'interagir directement avec les concepts de multithreading. Par exemple, plusieurs instances de Mario peuvent jouer simultanément, mais une seule peut entrer dans un tuyau à la fois. Ce projet démontre non seulement la créativité, mais fournit également une explication claire et captivante du multithreading, soulignant l'importance de comprendre les concepts fondamentaux de l'informatique.

Développement

Indécidabilité : la boîte de Pandore des programmeurs

2025-05-28
Indécidabilité : la boîte de Pandore des programmeurs

Cet article explique clairement le concept d'« indécidabilité » en informatique. À l'aide d'un langage accessible et d'exemples concrets (comme déterminer si un nombre est la somme de deux nombres premiers), l'auteur explique les problèmes de décision et le rôle des machines de Turing. La principale conclusion est que l'indécidabilité ne signifie pas qu'il est impossible de savoir si un programme s'arrêtera, mais plutôt qu'il n'existe pas d'algorithme universel pour déterminer le comportement d'arrêt de tous les programmes. Cela rend de nombreux problèmes (comme la vérification des propriétés des programmes) exigeants en efforts et potentiellement insolubles, soulignant la nécessité de domaines comme la vérification formelle et l'analyse de programmes.

Développement machine de Turing

Shibboleths de LLM : Le secret pour débloquer les assistants de codage IA

2025-05-28

L’efficacité des assistants de codage basés sur les grands modèles de langage (LLM) dépend de la façon dont vous posez vos questions. Cet essai soutient que les ingénieurs expérimentés utilisent des « shibboleths » spécifiques – jargon technique et formulations – pour guider l’IA vers un code de haute qualité, tandis que les novices, dépourvus de ce vocabulaire spécialisé, obtiennent souvent des résultats inefficaces ou incorrects. L’auteur utilise des anecdotes personnelles pour illustrer comment adapter les stratégies de prompts en fonction du niveau de compétence, en offrant des conseils pour améliorer l’efficacité de l’assistant de codage IA. Le message principal souligne l’importance de discerner et d’orienter le code généré par l’IA à l’ère de l’IA.

Développement

Guile Hoot 0.2.0 : Création de pages web interactives en Scheme

2025-05-28

Guile Hoot 0.2.0, un compilateur de Scheme vers WebAssembly GC, a été publié. Cette version introduit une interface de fonction étrangère (FFI), permettant aux développeurs d'écrire la majeure partie du code des applications web directement en Scheme, minimisant ainsi la dépendance à JavaScript. L'article montre comment créer des pages web interactives à l'aide de Scheme et de la FFI, en passant d'un simple « Bonjour le monde ! » à un compteur interactif, puis à une application de liste de tâches. En tirant parti des capacités de manipulation symbolique de Scheme et de SXML, il construit un DOM virtuel efficace avec un algorithme de différence similaire à celui de React pour les mises à jour.

Développement

Parallélisation de la génération de code LLM : un gain de productivité avec Git Worktrees et Tmux

2025-05-28
Parallélisation de la génération de code LLM : un gain de productivité avec Git Worktrees et Tmux

Nicholas Khami partage son expérience de parallélisation de plusieurs générateurs de code LLM (Claude Code, Codex) à l'aide de Git worktrees et de tmux. Il a constaté des gains d'efficacité significatifs ; même avec une qualité de sortie LLM individuelle incohérente, l'exécution simultanée de plusieurs agents augmente considérablement les chances d'obtenir du code utilisable. Cependant, la gestion manuelle de plusieurs worktrees et sessions tmux est fastidieuse. Pour résoudre ce problème, lui et son cofondateur développent `uzi`, un outil en ligne de commande pour rationaliser le flux de travail, offrant une expérience développeur plus fluide en automatisant des tâches telles que le lancement d'agents, l'envoi d'invites, l'exécution de commandes, la prévisualisation, la validation et la création de PR. Cela promet d'améliorer considérablement la productivité des développeurs, et la philosophie de traitement parallèle s'étend au-delà du codage, applicable à la révision de contrats juridiques et à l'analyse de données marketing. À l'avenir, il est probable que davantage de logiciels intègrent des capacités d'exécution parallèle similaires.

Développement Traitement parallèle

Compiler Explorer : La promesse d'URL pour toujours

2025-05-28

Les URL de Compiler Explorer ont évolué : du codage direct de l’état du compilateur dans les URL à l’utilisation de raccourcisseurs d’URL goo.gl, puis à une solution de stockage propre. Goo.gl étant abandonné en août 2025, l’auteur s’efforce de récupérer les anciens liens basés sur goo.gl, et en a déjà restauré plus de 12 000. Cet article souligne l’engagement de l’auteur envers des « URL pour toujours » et réfléchit à la dépendance aux services tiers.

Développement Liens

arXivLabs : Expérimentation et collaboration communautaire

2025-05-28
arXivLabs : Expérimentation et collaboration communautaire

arXivLabs est un cadre permettant aux collaborateurs de développer et de partager de nouvelles fonctionnalités arXiv directement sur notre site web. Les individus et les organisations qui travaillent avec arXivLabs ont adopté et accepté nos valeurs d'ouverture, de communauté, d'excellence et de confidentialité des données utilisateur. arXiv s'engage à respecter ces valeurs et ne travaille qu'avec des partenaires qui les partagent. Vous avez une idée de projet qui apportera une valeur ajoutée à la communauté arXiv ? En savoir plus sur arXivLabs.

Développement

J'ai fait de l'ingénierie inverse sur le site Web de Waffle House pendant un ouragan

2025-05-28
J'ai fait de l'ingénierie inverse sur le site Web de Waffle House pendant un ouragan

Lors de l'ouragan Helene, fin septembre 2024, tandis que mon université était fermée et que les gens barricadaient leurs maisons, j'ai fait de l'ingénierie inverse sur le site Web de Waffle House. En utilisant des données JSON cachées sur leur site Next.js, j'ai créé une carte en direct suivant les fermetures de Waffle House pour aider à évaluer l'impact de l'ouragan. Le site est devenu viral de manière inattendue, attirant l'attention de Waffle House elle-même et même de Frank Luntz. Finalement, des problèmes de marques déposées m'ont obligé à le retirer, mais l'expérience a été une aventure amusante et inattendue.

Développement

Tesseral : Infrastructure d'authentification open source pour les SaaS B2B

2025-05-28
Tesseral : Infrastructure d'authentification open source pour les SaaS B2B

Tesseral est une infrastructure d'authentification open source pour les logiciels d'entreprise (B2B SaaS). Il s'agit d'un service cloud multi-tenant, avec une API en priorité, compatible avec n'importe quelle stack technologique. Les développeurs peuvent utiliser le service géré sur console.tesseral.com ou l'auto-héberger. Il intègre tout ce dont vous avez besoin pour la gestion des utilisateurs : pages de connexion personnalisables, multi-location B2B, imitation d'utilisateur, configuration en libre-service, plusieurs méthodes de connexion (liens magiques, connexion sociale, SAML, SCIM), contrôle d'accès basé sur les rôles (RBAC), authentification multifacteur (MFA), clés de passe/WebAuthn, applications d'authentification (TOTP), gestion des clés API, invitations d'utilisateurs et webhooks. Des SDK sont disponibles pour React, Flask et plus encore, simplifiant l'intégration front-end et back-end.

Développement

Wetlands : Une bibliothèque Python légère pour la gestion des environnements Conda

2025-05-28

Wetlands est une bibliothèque Python légère conçue pour simplifier la gestion des environnements Conda. Elle crée des environnements Conda à la demande, installe les dépendances et exécute du code arbitraire à l'intérieur, évitant ainsi les conflits de dépendances. Idéale pour les systèmes de plugins ou l'intégration de modules externes, Wetlands utilise pixi ou micromamba pour une gestion rapide et efficace des environnements Conda. Une API simple permet aux développeurs de créer, lancer, importer des modules, exécuter des fonctions et quitter proprement les environnements, rendant la gestion des dépendances dans les projets Python plus facile et plus efficace.

Développement

Plongeon profond du Project Zero dans le Registre Windows : 2 ans, 53 CVE

2025-05-28
Plongeon profond du Project Zero dans le Registre Windows : 2 ans, 53 CVE

Mateusz Jurczyk du Google Project Zero a passé deux ans à effectuer des recherches approfondies sur le Registre Windows, découvrant 53 CVE. Ses recherches mettent en lumière la complexité du Registre en tant que surface d’attaque d’escalade de privilèges locale, détaillant les problèmes de sécurité découlant de son importante base de code ancienne écrite en C. La recherche couvre diverses classes de vulnérabilités, notamment la corruption de mémoire, la divulgation d’informations et les bogues logiques, en analysant plusieurs points d’entrée d’attaque tels que le chargement de ruches, les ruches d’applications et les appels système directs. La recherche souligne également l’impact des mécanismes d’autocorrection du Registre sur l’audit de sécurité et les défis liés aux limites floues entre les exigences de format strictes et les conventions. Enfin, l’article résume les primitives d’exploitation et discute des stratégies et des difficultés du fuzzing du Registre.

LLM : Accélérer l’incompétence en ingénierie logicielle

2025-05-28
LLM : Accélérer l’incompétence en ingénierie logicielle

Cet essai soutient que la surdépendance aux grands modèles linguistiques (LLM) en ingénierie logicielle peut accélérer l’incompétence. Un ingénieur logiciel expérimenté détaille comment les LLM, bien qu’offrant une vitesse de génération de code, introduisent des risques importants : sorties incorrectes, incapacité à comprendre le contexte, augmentation de la dette technique et suppression de la pensée critique et de la créativité. S’appuyant sur les idées de Peter Naur et Fred Brooks, l’auteur souligne que la programmation consiste à construire la théorie du programme et à gérer l’entropie du programme, des tâches qui dépassent les capacités des LLM actuels. L’essai conclut que, bien que les LLM soient des outils utiles, ils ne peuvent pas remplacer l’ingéniosité et la pensée profonde humaines, et une dépendance excessive peut entraîner une augmentation des coûts et des échecs de projet.

Développement

Microsoft ouvre Windows Update aux applications tierces

2025-05-28
Microsoft ouvre Windows Update aux applications tierces

Microsoft étend Windows Update pour inclure les applications tierces. Les développeurs peuvent désormais s'inscrire à une préversion privée de la plateforme d'orchestration de Windows Update, permettant un support futur pour les mises à jour de toutes les applications ou pilotes. Bien que principalement axé sur les applications professionnelles, il sera ouvert à toutes les applications et outils de gestion. Cela permettra aux développeurs de tirer parti des mises à jour planifiées en fonction de l'activité de l'utilisateur, de l'état de la batterie et même du calendrier de l'énergie durable, de se connecter directement aux notifications natives de Windows Update et de répertorier les mises à jour dans l'historique des mises à jour des applications de Windows Update. Microsoft prendra en charge les applications packagées MSIX/APPX et même certaines applications Win32 personnalisées.

Développement Applications tierces

Sortie de CheerpJ 4.1 : Prise en charge anticipée de Java 17 et Java amélioré pour les navigateurs

2025-05-28
Sortie de CheerpJ 4.1 : Prise en charge anticipée de Java 17 et Java amélioré pour les navigateurs

Leaning Technologies a annoncé la sortie de CheerpJ 4.1, qui inclut une prise en charge préliminaire de Java 17 et une stabilité améliorée pour Java 11, ainsi que des optimisations de performances, des améliorations de la pile réseau et une meilleure ergonomie sur les appareils mobiles. CheerpJ est une JVM basée sur WebAssembly qui permet l’exécution directe de bytecode Java sans modification dans les navigateurs, prenant en charge les applications Swing/AWT à grande échelle et l’intégration de bibliothèques Java (mode Bibliothèque). CheerpJ 4.1 introduit également la prise en charge des modules JNI WebAssembly, permettant l’exécution d’applications Java reposant sur du code natif, comme Minecraft. La future version CheerpJ 5.0 inclura une prise en charge stable de Java 17 et la prise en charge de NPM.

Développement

LLM : Le coût imprévu d'une programmation simplifiée

2025-05-28

Les grands modèles de langage (LLM) ont révolutionné la rédaction de code, surpassant même l'impact du World Wide Web. Pourtant, cela n'a pas changé la vérité fondamentale selon laquelle comprendre le code est plus difficile que de l'écrire ; chaque ligne représente une dette technique. L'introduction des LLM rend encore plus difficile la persuasion des équipes d'abandonner les anciens jeux de tests et les décisions techniques. Les LLM produisent facilement de nouvelles fonctions, ce qui conduit à des bases de code volumineuses et difficiles à maintenir, défiant les principes DRY. Les équipes d'ingénierie historiquement productives dépendent d'une expertise approfondie de la chaîne d'outils, mais les LLM réduisent considérablement les coûts de codage, entraînant une explosion de la diversité écologique dans les environnements logiciels. Bien que les LLM puissent éventuellement améliorer la lisibilité et le raisonnement du code, les défis actuels sont importants.

L'histoire chaotique de l'analyse des dates en JavaScript

2025-05-28

Cet article révèle une particularité de l'analyse des dates en JavaScript : « 2025/05/28 » et « 2025-05-28 » représentent des dates différentes. Cela provient d'incohérences de longue date dans la manière dont les navigateurs analysent les chaînes de caractères de dates. L'article retrace l'évolution de l'analyse des chaînes de caractères de dates dans Chrome, Firefox et Safari depuis la sortie de la norme ES5 en 2009, en soulignant leurs différentes implémentations et interprétations de la norme ISO 8601. En fin de compte, les formats de date comme « 2025-05-28 » sont interprétés comme UTC, tandis que d'autres sont interprétés comme l'heure locale, ce qui crée une confusion. L'article se termine en présentant la prochaine API Temporal de JavaScript, qui résoudra ce problème en exigeant des informations sur le fuseau horaire.

Développement Analyse de dates

LIEF ajoute la génération DWARF : Connecter les outils d'ingénierie inverse

2025-05-28
LIEF ajoute la génération DWARF : Connecter les outils d'ingénierie inverse

LIEF dispose désormais d'une API complète pour créer des fichiers DWARF, ainsi que de plugins pour Ghidra et BinaryNinja permettant d'exporter les résultats d'analyse d'ingénierie inverse. Cela permet de partager des informations cruciales telles que les noms de fonctions et les structures entre différents outils d'ingénierie inverse. Tirant parti du backend DWARF de LLVM, l'API (disponible en Python, Rust et C++) simplifie le processus, gérant même des détails tels que les décalages des variables de pile. Ceci améliore la collaboration et la compréhension dans les projets d'ingénierie inverse complexes.

Développement

La course aux armements JavaScript Proof-of-Work contre les LLM

2025-05-28

Les sites Web utilisent de plus en plus des systèmes de preuve de travail basés sur JavaScript, comme Anubis de Xe Iaso, pour lutter contre les LLM et les gratte-pages Web agressifs. Cependant, les LLM peuvent exploiter des machines compromises pour obtenir une puissance de calcul CPU importante afin de résoudre ces défis. Le problème est que les LLM fonctionnent dans un environnement hostile, ce qui rend difficile la distinction entre une preuve de travail authentique et un JavaScript malveillant. Cela expose les LLM à l'exploitation minière de CPU ou à d'autres attaques. Essayer d'identifier les systèmes de preuve de travail est une partie perdue d'avance pour les LLM, car les acteurs malveillants ont intérêt à les imiter. Cela crée une course aux armements entre les sites Web et les LLM, chacun essayant d'optimiser l'utilisation des ressources tout en protégeant ses intérêts.

Développement Grattage Web

L'arme secrète d'un programmeur : les notes manuscrites surpassent les éditeurs de code

2025-05-28
L'arme secrète d'un programmeur : les notes manuscrites surpassent les éditeurs de code

Un développeur de logiciels partage ses idées uniques sur l'utilisation d'un carnet pour réfléchir et résoudre des problèmes. Il soutient que le fait d'écrire des pensées et des schémas dans un carnet, avant d'écrire du code directement sur un ordinateur, permet une plus grande clarté et l'identification de solutions. Cette méthode aide à transformer des idées vagues en plans concrets, à détecter les bogues et les défauts de conception dans le code et laisse un enregistrement précieux du processus de réflexion pour référence ultérieure. Pour lui, un carnet est un outil plus important qu'un éditeur de code.

Développement Méthodes de réflexion

Implémentation de référence du protocole de consensus Alpenglow

2025-05-28
Implémentation de référence du protocole de consensus Alpenglow

Anza Technology a publié une implémentation de référence du protocole de consensus Alpenglow. Cela inclut un exemple de cluster local exécutable avec 6 nœuds communiquant via UDP. Un binaire de simulations fournit diverses simulations de la résilience et des exigences de bande passante d'Alpenglow ; un jeu de données de ping public est nécessaire pour certaines simulations. Des micro-benchmarks et une suite de tests sont également inclus. Pour les problèmes de sécurité, contactez directement quentin (at) anza (dot) xyz.

Développement

Monorepo : Un chemin épineux vers la productivité des développeurs

2025-05-28

Cet article explore les défis et les opportunités liés à la construction et à la maintenance d’un monorepo. L’auteur met en garde contre le fait de suivre aveuglément les réussites des grandes entreprises technologiques, soulignant qu’un monorepo n’est pas une solution miracle. Le succès repose sur des objectifs clairement définis, tels que l’amélioration de la cohérence du code, la cohésion organisationnelle et l’efficacité du partage des outils. L’article détaille les stratégies d’optimisation pour le contrôle de version (limitations de Git et alternatives), les systèmes de build (en priorisant les stratégies monolingue), les tests (O(change) et non O(repo)) et les flux de travail CI/CD dans un environnement monorepo. L’auteur souligne l’importance de gérer soigneusement le code généré et la nature asynchrone du déploiement des services pour éviter les incidents dus à l’illusion des validations atomiques. En fin de compte, l’auteur soutient que, bien que difficile, les avantages d’un monorepo bien entretenu valent la peine si l’organisation s’engage dans l’amélioration continue des outils et des processus.

Développement

pg_test_fsync : Évaluation des performances d’écriture sur disque pour les bases de données

2025-05-28

Cet article présente l’outil `pg_test_fsync`, utilisé pour évaluer rapidement les performances d’écriture sur disque ou stockage cloud, particulièrement utile pour les journaux WAL des bases de données et autres charges de travail d’écriture à faible latence. L’auteur teste un SSD Samsung 990 Pro grand public et un SSD Micron 7400 d’entreprise, montrant des vitesses d’écriture synchrone significativement plus rapides sur le SSD d’entreprise grâce à son cache DRAM de contrôleur et à sa protection contre les pertes de courant. `fdatasync` s’avère plus rapide que `fsync` ou `O_SYNC`, mais même `fdatasync` prend 1,6 milliseconde pour une seule écriture de 8 Ko. L’article note que plusieurs petites écritures dégradent les performances, suggérant l’écriture par lots pour une meilleure efficacité.

Développement

Une application UEFI sauve mon système x86 alimenté par PoE

2025-05-28
Une application UEFI sauve mon système x86 alimenté par PoE

En 2015, l'auteur a rencontré un défi lors du développement d'ordinateurs x86 embarqués alimentés par PoE : le système avait besoin de 23 W pour démarrer, mais le PoE standard ne fournissait que 15,4 W. Après avoir échoué à modifier le BIOS, l'auteur a habilement utilisé une application UEFI pour envoyer des paquets LLDP avant le démarrage du système d'exploitation, négociant avec succès une puissance PoE+ plus élevée. Cette application UEFI, appelée PoePwrNegotiator, écrite en C, est désormais open source, offrant une expérience précieuse aux développeurs de projets similaires.

Développement

Compression d'images : faites voler votre site web

2025-05-28

Une seule image héros non optimisée peut peser plus lourd que l'ensemble du budget de votre page web ! Cet article vous apprend à maîtriser rapidement les techniques de compression d'images pour améliorer la vitesse de votre site web et le référencement. Il explique la différence entre la compression avec perte et sans perte, les métriques clés (qualité, résolution, taille du fichier), les formats courants (JPEG, PNG, WebP, AVIF) et les étapes pour utiliser l'outil SlimImg pour compresser les images. Une étude de cas de commerce électronique montre qu'en compressant les photos de produits, la taille moyenne des pages a été réduite de 68 % et les taux de conversion ont augmenté de 38 %.

Développement compression d'images

Pourquoi les courbes elliptiques pour Diffie-Hellman ?

2025-05-27
Pourquoi les courbes elliptiques pour Diffie-Hellman ?

Cet article explore les raisons de l'utilisation des courbes elliptiques dans l'échange de clés Diffie-Hellman. En commençant par la théorie des groupes, l'auteur explique pourquoi d'autres groupes, comme le groupe Monstre, sont inadaptés. Grâce à une exploration des objets de groupe et de la théorie des catégories, l'article révèle que les courbes elliptiques ne sont pas un choix arbitraire, mais presque la seule option viable, montrant même que le Diffie-Hellman en champ fini est un cas particulier de la cryptographie à courbe elliptique.

LLM 0.26 : Les grands modèles de langage se dotent d’outils en terminal

2025-05-27
LLM 0.26 : Les grands modèles de langage se dotent d’outils en terminal

LLM 0.26 est sorti, apportant la fonctionnalité la plus importante depuis le début du projet : la prise en charge des outils. L’interface en ligne de commande LLM et la bibliothèque Python permettent désormais d’accorder aux LLM d’OpenAI, Anthropic, Gemini et aux modèles locaux d’Ollama l’accès à n’importe quel outil représentable sous forme de fonction Python. L’article détaille l’installation et l’utilisation de plugins d’outils, l’exécution d’outils via la ligne de commande ou l’API Python, et présente des exemples avec OpenAI, Anthropic, Gemini et même le petit modèle Qwen-3. Au-delà des outils intégrés, des plugins personnalisés tels que simpleeval (pour les mathématiques), quickjs (pour JavaScript) et sqlite (pour les requêtes de base de données) sont présentés. Cette prise en charge des outils répond aux faiblesses des LLM, comme les calculs mathématiques, en étendant considérablement les capacités et en ouvrant des possibilités pour des applications d’IA puissantes.

Amélioration du solveur APT : gestion élégante de la suppression des paquets installés manuellement

2025-05-27

Cet article détaille les améliorations apportées à un solveur de gestionnaire de paquets APT. Initialement, les paquets installés manuellement étaient traités comme des faits fixes, tandis que les paquets installés automatiquement étaient des clauses unitaires facultatives. Cependant, la possibilité de supprimer les paquets installés manuellement a cassé le solveur ; il pouvait les supprimer inutilement. L’auteur résout ce problème en supposant initialement toutes les clauses facultatives, puis en défaisant itérativement ces suppositions pendant le processus de résolution. Cette approche, bien que non globalement optimale, s’avère efficace en pratique pour la résolution des dépendances, évitant la complexité exponentielle d’une recherche globale.

Développement

Exécuter GPT-2 sur le GPU avec les shaders WebGL : le périple d'un hacker

2025-05-27

Ce succès sur Hacker News détaille l'expérience de l'auteur lors de l'implémentation de GPT-2 à l'aide de WebGL et de shaders sur le GPU. L'article explore les origines et l'évolution de la programmation GPU à usage général, comparant les API graphiques traditionnelles (comme OpenGL) aux API de calcul (CUDA et OpenCL). L'auteur utilise intelligemment les textures et les framebuffers comme bus de données, employant les shaders de fragments comme noyaux de calcul pour effectuer des opérations de réseau neuronal telles que la multiplication matricielle et l'activation GELU. Tout en reconnaissant les limitations en matière de mémoire partagée, de taille de texture et de précision, l'article met en lumière la puissance et le potentiel de la programmation GPU et démontre une utilisation innovante des techniques de traitement graphique pour le calcul à usage général. Le code est disponible sur Github.

Développement

Compteur efficace de nombres premiers tronqués à droite en C

2025-05-27
Compteur efficace de nombres premiers tronqués à droite en C

Ce programme C calcule efficacement le nombre de nombres premiers tronqués à droite pour un nombre donné de chiffres. Il utilise une table de hachage personnalisée pour des vérifications rapides de primalité et la bibliothèque primesieve pour une génération optimisée de nombres premiers. Un nombre premier tronqué à droite reste premier après avoir supprimé successivement son chiffre le plus à droite. Le programme gère les entrées de 1 à 19 chiffres, en rapportant le nombre de nombres premiers tronqués à droite pour chaque longueur de chiffre et le temps d'exécution total. Par exemple, pour les nombres à 8 chiffres, il trouve 5 nombres premiers de ce type et un total de 83 jusqu'à 8 chiffres.

Développement
1 2 74 75 76 78 80 81 82 214 215