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

    [ALGORITMO] Stampa dei numeri primi

    Salve a tutti, sto svolgendo questo esercizio:

    "Dati due valori, generare la sequenza di tutti i numeri primi compresi nell'intervallo delimitato dalle due cifre"

    Sto verificando l'esattezza dell'algoritmo creandolo direttamente con Algobuild

    numeri_primi.jpg

    Riesco a verificare i numeri primi, ma nel ciclo non riesco a generare la sequenza, dove sbaglio?

  2. #2
    Non riesco a capire dove vuoi arrivare col flow chart... Certo pu� aiutare per inziare a ragionare sul problema ok, ma poi credo va messo da parte.

    Ad ogni modo dai un'occhiata al Crivello di Eratostene, puoi procedere con le cancellazioni che � una versione ottimizzata dell'algo.

    Una versione semplice e non ottimizzata pu� essere quella senza cancellazione:
    praticamente avendo due numeri a e b vogliamo calcolare nell'intervallo (ordinato quindi) quanti primi ci sono. Ok . La condizione di un numero primo �? Banalmente un numero � primo se � divisibile SOLO per 1 e per se stesso.
    Eliminer� la verifica della divisibilit� per 1 perch� sempre vera e verificher� invece con l'aiuto di un contatore se ho un solo divisore, quindi se � divisibile solo per se stesso.
    Quindi direi 2 cicli innestati in cui valuto se l'elemento
    array[i] mod j == 0
    contatore++;

    alla fine del ciclo pi� innestato (indice j) se avr� il contatore = 1 a quel punto dir� che [i] � un numero primo.

    user� la condizione per cui se [i] >= a e [i] =< b lo salvo.
    Ultima modifica di JavaFurbix46; 21-03-2018 a 19:08

  3. #3
    sembra che cosí funzioni... che ne dici?
    numeri_primi.jpg

  4. #4
    posta il codic su pastebin .. Non riesco a vedere quella jpg.

  5. #5
    É un jpg dell’algoritmo non del codice...

  6. #6
    Quote Originariamente inviata da chiara1984 Visualizza il messaggio
    É un jpg dell’algoritmo non del codice...
    continuo nel non riuscirlo a vedere.


    @edit.

    Ora lo vedo,ma non capisco a cosa vuoi arrivare col chart. E poi perchè controlli soltanto la divisibilità fino al 5?! Una versione semplice controlla la divisibilità fino a 37,
    Una prima ottimizzazione è controllare la divisibilità fino a 37/2.
    Infine una buona ottimizzazione è invece fermarti alla radice quadrata di 37(la parte intera del risultato)

    Sei all'università? di che esame si tratta?

    PPS: I flow chart possono rappresentare algoritmi semplici ,
    per il resto se vuoi rappresentare un algo meglio usare uno pseudocodice simile ad un linguaggio parlato .
    Per esempio un ciclo:
    Ripeti da 1 a 100
    somma a+b
    ...
    ...
    etc..
    Ultima modifica di JavaFurbix46; 22-03-2018 a 00:32

  7. #7

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 © 2024 vBulletin Solutions, Inc. All rights reserved.