LaDissertation.com - Dissertations, fiches de lectures, exemples du BAC
Recherche

Algorithme arithmétique

Rapports de Stage : Algorithme arithmétique. Recherche parmi 298 000+ dissertations

Par   •  13 Janvier 2015  •  686 Mots (3 Pages)  •  848 Vues

Page 1 sur 3

Module Module1

' Algorithmes d'arithmétique

' Exercice 5 fiche 1

' Test de primalité d'un entier

' Algorithme 2 : On teste tous les entiers impairs p de 2 à racine(n)

' Avantage : le temps d'exécution est proportionnel à racine(n)/2, ce qui est beaucoup plus rapide que le premier algorithme

' Temps d'exécution de l'algorithme mesuré avec Timer

Sub Main()

Dim n, p As Integer

Dim Debut As Double

Console.WriteLine("Test de primalité d'un entier n ")

Console.WriteLine()

Console.WriteLine("Saisir l'entier n (Mini : 2 , Maxi 2 147 483 647 )")

n = Console.ReadLine()

Debut = Timer

' on teste d'abord la divisibilité par 2

If n Mod 2 = 0 Then

If n = 2 Then

Console.WriteLine("l'entier {0} est premier", n)

Else

Console.WriteLine("l'entier {0} n'est pas premier, il est multiple de 2", n)

End If

' on teste ensuite la divisibilité par les entiers impairs plus petits que racine(n)

' on teste donc 3, 5, 7, ... pour cela on incrémente p de 2 à chaque boucle

Else

p = 3

While n Mod p <> 0 And p ^ 2 <= n

p = p + 2

End While

' si n = 3, on ne passe pas dans la boucle, ce qui crée un cas particulier

' si n est premier, on sort de la boucle quand p^2 dépasse n

' si n n'est pas premier, on sort de la boucle quand on p est un diviseur de n

' Les mots clés And et Or permettent de créer des conditions "multiples"

If (n Mod p <> 0 And p ^ 2 > n) Or n = 3 Then

Console.WriteLine("l'entier {0} est premier", n)

Else

Console.WriteLine("l'entier {0} n'est pas

...

Télécharger au format  txt (2.1 Kb)   pdf (48.4 Kb)   docx (8.5 Kb)  
Voir 2 pages de plus »
Uniquement disponible sur LaDissertation.com