ciao, è qualche giorno che divento matta per scrivere l'algoritmo per la generazione di numeri primi da 2 a N (n da utente)...ma il programma non funziona...
ho pensato di fare in questo modo: considero i numeri da 2 a N, per ciascuno di essi calcolo i multipli e li memorizzo in un vettore verificando che non siano già presenti. poi stampa i numeri da 1 a n che non sono presenti nel vettore.

vi riporto l'algoritmo.

Option Explicit On
Option Strict On

Module Module1

Sub Main()
Dim a(20000) As Integer
Dim n, f, multiplo As Integer
Call inserimento(n)
primo(a, n, f, multiplo)
Console.ReadLine()

End Sub

Sub inserimento(ByVal n As Integer)
Do
Console.WriteLine(" inserisci un numero: ")
n = CType(Console.ReadLine(), Integer)
Loop Until n > 2
End Sub


Function primo(ByVal a() As Integer, ByVal n As Integer, ByVal f As Integer, ByVal multiplo As Integer) As Integer
'voglio eliminare tutti i multipli dei numeri fino a n, così quelli che restano, che non sono multipli
'di nulla, sono numeri primi
Const dimensione As Integer = 20000
For i As Integer = 2 To n ' questo ciclo da 2 a n e il for da k a n serve per calcolare i multipli di ciascun
'numero da 2 a n
For k As Integer = i To n
multiplo = i * k
For j As Integer = 0 To dimensione
If a(j) <> multiplo Then
a(j) = multiplo
End If
Next
Next
Next
For m As Integer = 2 To n ' stampo i numeri da 2 a n che non sono presenti nel vettore dei multipli
For t As Integer = 0 To dimensione
If a(t) <> m Then
Console.WriteLine("n primo: " & CType(m, String))
End If
Next
Next

End Function

End Module



Aiutooooo vi pregooo!!!