'programme "Nombres Premiers" 'm‚thode : Un nombre premier est un nombre qui ne peut ˆtre diviser que par '1 ou par lui-mˆme. Donc pour chaque nombre a tester, je le divise par tous 'les nombre se trouvant avant lui et je compare la partie d‚cimale du r‚sultat 'avec 0. Par exemple avec le nombre 5, je le divise par 2, la partie d‚cimal ' est ‚gale … 0.5 donc je continu, je divise avec 3 : partie d‚cimale <> 0 ', avec 4, partie d‚cimale toujours <> 0, donc 5 est un nombre premier. Mais ' je remarque que si 5 n'est pas divisible 2, il n'est pas divisible par 4 '(car 4=2*2) , donc pour test‚ si un nombre est premier ou pas, il faut le ' diviser par tous les nombres premiers trouv‚s avant. De plus je remarque ' que 5 ne peut pas ˆtre diviser par des nombre sup‚rieurs … 5^(1/2), 'finallement pour savoir si 5 est un nombre premier, il me suffit de le 'diviser par 2, et de comparer la parie d‚cimale du r‚sultat (ou le reste) 'avec 0. 'presentation CLS PRINT " ___ |\ /| ___" PRINT " / \ | \__/ | / \" PRINT " / \__ | o o | __/ \" PRINT " / \ / \ / \" PRINT " / \/ \/ \" PRINT " / PROGRAMME DE \" PRINT " / RECHERCHE DES NOMBRES \" PRINT " /\ /\ /\ /\ PREMIERS /\ /\ /\ /\" PRINT "/ \/ \/ \/ \ ____ / \/ \/ \/ \" PRINT " \ / \ / " PRINT " \/ \/ " PRINT " by e-REKCAH " PRINT "" PRINT " Menu Principal" PRINT " 1- Afficher a l'‚cran uniquement" PRINT " 2- Imprimer" PRINT " 3- Ecrire dans le fichier ~Prem.txt~" INPUT "Votre choix : ", choix% IF choix% = 3 THEN '\ INPUT "Chemin et nom du fichier : ", Fich$ ' > ouverture du fichier OPEN Fich$ FOR APPEND AS #1 '/ END IF IF choix% = 2 THEN WIDTH LPRINT 98 INPUT "Utiliser les statistiques ? (o/n)"; stat$ 'Initialisation des variables CLS debtime$ = TIME$ 'heure de d‚marrage sauvegard‚e IF stat$ = "n" GOTO 2 LOCATE 24, 1, 0 '\ PRINT "Statistiques :" ' \ pr‚sentation LOCATE 25, 1, 0 ' > des fonctions PRINT " Touche ESC pour interrompre" ' / statistiques LOCATE 1, 1, 0 '/ 2 DIM prem&(16250) 'prem& contient les nombres premiers trouv‚s prem&(0) = 2 CONST max& = 165000 'rechercher jusqu'a "max&" trouv& = 1 'Contient le nombre de nombres premiers trouv‚s 'boucle principale FOR nbr& = 3 TO max& 'nbr& = nombre … tester lign% = 0 'Statistiques IF stat$ = "n" GOTO 5 ligne% = CSRLIN IF ligne% = 21 THEN ligne% = 1 colone% = POS(0) PRINT " " VIEW PRINT 21 TO 25 pourcent! = (trouv& * 100) / nbr& 'calcule le pourcentage LOCATE 24, 1, 0 PRINT "Nombre de nombres premiers trouv‚s :"; trouv&; "Soit"; pourcent!; "% du total" VIEW PRINT 1 TO 25 LOCATE ligne%, colone%, 0 5 IF INKEY$ = CHR$(27) THEN GOSUB interruption 'premet d'interrompre 'Test result! = nbr& / (prem&(lign%)) IF result! - INT(result!) = 0 THEN GOTO 15 rapid& = (prem&(lign%)) * (prem&(lign%)) - 1 10 IF rapid& > nbr& THEN GOTO 20 lign% = lign% + 1 IF prem&(lign%) = 0 THEN GOTO 20 GOTO 5 'Nombre premier trouv‚ 20 prem&(trouv&) = nbr& 'inscrit ce nombre dans le tableau trouv& = trouv& + 1 'incr‚mente le compteur 'Affichage PRINT USING "####### "; nbr&; 'affiche le nombre … l'‚cran 'SLEEP 1 'utilis‚ pour les tests IF choix% = 2 THEN LPRINT USING "#######"; nbr&; 'imprime le nombre IF choix% = 3 THEN WRITE #1, nbr& 'inscrit le nbr dans un fichier 15 NEXT nbr& pourcent! = trouv& * 100 / nbr& PRINT "" PRINT "programe d‚but‚ … "; debtime$; ", il est "; TIME$; " " PRINT "Nombre de nombres premiers trouv‚s : "; trouv&; "Soit"; pourcent!; "% du total" END interruption: pourcent! = trouv& * 100 / nbr& PRINT "" PRINT "programe d‚but‚ … "; debtime$; ", il est "; TIME$; " " PRINT "Nombre de nombres premiers trouv‚s : "; trouv&; "Soit"; pourcent!; "% du total " INPUT "Voulez-vous continuez le processus ? (o/n) ", quest$ IF quest$ = "o" OR oui THEN RETURN END SUB fin PRINT prem% INPUT "Voulez-vous continuez le processus", quest$ IF quest$ = "n" OR non THEN END IF quest$ = "o" OR oui THEN RETURN END SUB