
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Option Explicit
Public Function Nprimo(ByVal Numero As Double) As Boolean
''Utilizzo Nprimo( il numero intero da verificare)
Application.Volatile
Dim i As Long
If Numero <> Fix(Numero) Then '' controllo se ci sono decimali inseriti
Nprimo = False
Exit Function
End If
If Numero < 1 Then '' controllo per il valore 0
Nprimo = False
Exit Function
End If
For i = 2 To Sqr(Numero) + 1 ''radice quadrata del numero , Numero di cicli per calcolo Mod
If Numero Mod i = 0 And Numero <> i Then '' per numero primo nessuna corrispondenza
Nprimo = False '' numero non primo Mod riporta 0
Exit Function
End If
Next i
Nprimo = True '' e un numero primo
End Function
''''''''''''''''''''
Sub ScriveNprimi()
Dim o As Long
Dim Nrig As Long, Ncol As Long
Nrig = 1
Ncol = 5
Application.ScreenUpdating = False
Application.EnableEvents = False
For o = 1 To 1000000
If Nprimo(o) = True Then
Cells(Nrig, Ncol) = o
Nrig = Nrig + 1
End If
If Nrig > 59999 Then
Nrig = 1
Ncol = Ncol + 1
End If
Next o
Application.EnableEvents = True
Application.ScreenUpdating = False
End Sub
|
Function NumeroPrimo(MioRange As Range) As Variant
Dim Divisore As Double
If MioRange.Cells.Count > 1 Then
NumeroPrimo = "Errore, Selezionate troppe celle"
ElseIf ((MioRange.Value Mod 2) = 0) Then
NumeroPrimo = False
Else
NumeroPrimo = True
For Divisore = 3 To Int(Sqr(MioRange.Value)) Step 2
If ((MioRange.Value Mod Divisore) = 0) Then
NumeroPrimo = False
Exit Function
End If
Next Divisore
End If
End Function |
Function NumeroPrimo(MioRange As Range) As Variant
Dim Divisore As Double
If MioRange.Cells.Count > 1 Then
NumeroPrimo = "Errore, Selezionate troppe celle"
End If
If MioRange.Value - Fix(MioRange.Value) <> 0 Then ''controllo decimali
NumeroPrimo = False
ElseIf ((MioRange.Value Mod 2) = 0) And MioRange.Value <> 2 Then ''controllo pari e 2 Nprimo
NumeroPrimo = False
Else
NumeroPrimo = True
For Divisore = 3 To Int(Sqr(MioRange.Value)) Step 2
If ((MioRange.Value Mod Divisore) = 0) Then
NumeroPrimo = False
Exit Function
End If
Next Divisore
End If
End Function
|
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
