Bonjour,
J'ai fait un petit projet qui sert à trouver les nombres premiers. Je crois que la fonction peut être utile à d'autres personnes d'ici.
J'ai trouvé les nombres premiers de 0 à 10,000 en 93ms.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 Private Function IsPrime(ByVal Number As Double) As Boolean ' Compteur Dim i As Double ' Nombre Dim d As Double ' Trois nombres ne seront pas pris en compte par le compteur, on s'organise pour ' qu'ils soient vus avant. Select Case Number Case 0 IsPrime = False Exit Function Case 1 IsPrime = False Exit Function Case 2 IsPrime = True Exit Function End Select ' Voici la boucle. ' Pas besoin de commencer à 1 et de finir au nombre, 3 et la racine du nombre ' font bien l'affaire For i = 2 To Int(Sqr(Number)) + 1 d = Number / i If d = Int(d) Then IsPrime = False Exit Function End If Next i ' Verdict ? IsPrime = True End Function
J'aimerais savoir ce que vous en pensez,
Thunder
Partager