Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    generatore di numeri primi visual basic!!!

    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!!!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Esiste un apposito forum per il VB (di cui devi indicare sempre la versione ... penso tu utilizzi VB.NET ...)

    Devi mostrare il codice utilizzando i tag CODE e formattarlo in modo da renderlo leggibile ...

    In poche parole, devi rispettare il regolamento prima di postare ...

    Attendi che un moderatore sposti il thread ... intanto ti consiglio di leggere qualcosa sul

    Crivello di Eratostene
    http://it.wikipedia.org/wiki/Crivell...sual_basic_6.0

    anche se e' nella versione per VB6 ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Non so se hai già risolto, ma io ho fatto in questo modo:

    in una form ho inserito un button e una textbox multilinea con scrollbar verticale, quindi ho scritto questo codice:
    codice:
    Public Class Form1
    
        Dim numero As Integer
        Dim elenco(0 To 1000) As Integer
    
        Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            numero = CType(InputBox("Inserisci un nuero intero: ", "Calcolo numeri primi"), Integer)
    
            For i As Integer = 0 To numero - 1
                elenco(i) = 1 + i
            Next
    
            CalcolaNumeriPrimi(numero)
    
            For i As Integer = 0 To numero - 1
                If elenco(i) <> -1 Then
                    TextBox1.Text += elenco(i).ToString + Environment.NewLine
                End If
            Next
    
        End Sub
    
        Private Sub CalcolaNumeriPrimi(ByVal num As Integer)
    
            Dim cifra As Integer = 2
            Dim contatore As Integer = 0
    
            For k As Integer = 0 To num - 1
                For i As Integer = contatore To num - 1
                    If elenco(i) <> 1 Then
                        If elenco(i) Mod (cifra) = 0 And elenco(i) <> cifra Then
                            elenco(i) = -1
                        End If
    
                    End If
                Next
                cifra += 1
                contatore += 1
            Next
    
        End Sub
    
    End Class

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.