Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    Programma Primi di un Numero

    Ciao a tutti vorrei chiedere un aiuto, dovrei fare un programma che memorizza i numeri primi di 50,poi legge un indice intero, suggerendo che sia minore della lunghezza dell'array, e stampa il numero primo memorizzato in quella posizione.Il programma deve continuare a funzionare anche se si decide di inizializzare la costante con una seguenza di primi piu lunga o piu corta...

    Qualcuno mi potrebbe spiegare a grandi linea cosa potrei fare per fare questo programma?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non è chiara la richiesta, ma suppongo ti sia richiesto di trovare tutti i numeri primi minori o uguali ad un certo numero dato... caricarli in un array e dare la possibilità all'utente di farsi ritornare l'n-esimo numero primo (quindi l'ennesimo elemento dell'array).

    Sa molto di compiti per casa... qui di norma non se ne parla (e non si parla di norma di problematiche non inerenti a codice): dovresti quindi sviluppare qualcosa di tuo pugno ed eventualmente postare con le problematiche riscontrate nel tuo codice.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Io non sono uno studente ma sto studiando il java e nelle esercitazioni mi richiede di fare questo programma, ma non mi e chiaro come faccio a dire al programma che deve solo salvarmi i numeri primi inferiori a 50

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    divide et impera

    - dovrai costruire una qualche routine per verificare se un numero dato è primo;
    - dovrai testare tutti (non proprio, bastano solo i numeri dispari, visto che l'unico primo pari è 2) i numeri tra 2 (1 non è primo per definizione) e il tuo limite superiore;
    - infilare in un array i numeri che hanno superato il test di primalità;
    - prevedere un sistema di interazione con l'utente;
    - gestire eventuali situazioni "anomale" (richiesto un elemento fuori dall'ordine del tuo array) o input non conformi a quanto atteso/processabile dal tuo programma.

    gli ultimi due task sono a loro volta riducibili a sotto-task più piccoli.

    Questa è a grandi linee la (una possibile) struttura del tuo programma. Adesso tocca a te.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da Andrea1979
    - dovrai testare tutti (non proprio, bastano solo i numeri dispari, visto che l'unico primo pari è 2) i numeri tra 2 (1 non è primo per definizione) e il tuo limite superiore;
    Se non erro è sufficiente scorrere sino alla radice quadrata del suo limite.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da Patrick Jane
    Se non erro è sufficiente scorrere sino alla radice quadrata del suo limite.
    Per testare se un numero x è primo, è corretto quel che dici: basta testare tutti i numeri dispari fino alla parte intera della radice quadrata di x. Ma questo è uno dei possibili test di primalità... lì si intendeva: dovrai effettuare il test di primalità su tutti i numeri dispari minori del tuo limite (50 nel caso del nostro amico).

    A dire il vero, nel caso specifico di m1ster_b1t, ovvero array etc etc, mi sembra abbastanza comodo l'applicazione del "crivello di eratostene", visto che comunque si tratta di individuare tutti i numeri primi in un certo intervallo, e non solo se un dato numero sia primo o meno. Non vorrei però mettere troppa carne al fuoco.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da Andrea1979
    Per testare se un numero x è primo, è corretto quel che dici: basta testare tutti i numeri dispari fino alla parte intera della radice quadrata di x. Ma questo è uno dei possibili test di primalità... lì si intendeva: dovrai effettuare il test di primalità su tutti i numeri dispari minori del tuo limite (50 nel caso del nostro amico).

    A dire il vero, nel caso specifico di m1ster_b1t, ovvero array etc etc, mi sembra abbastanza comodo l'applicazione del "crivello di eratostene", visto che comunque si tratta di individuare tutti i numeri primi in un certo intervallo, e non solo se un dato numero sia primo o meno. Non vorrei però mettere troppa carne al fuoco.
    Si hai ragione. Oltretutto è piuttosto semplice da implementare. Poi successivamente consiglierei (dopo l'applicazione del Crivello), una ricerca binaria nel vettore (dato che dovrebbe essere ordinato, in quel caso lo si può ordinare^^).
    Sarebbe un idea?

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da Patrick Jane
    Si hai ragione. Oltretutto è piuttosto semplice da implementare. Poi successivamente consiglierei (dopo l'applicazione del Crivello), una ricerca binaria nel vettore (dato che dovrebbe essere ordinato, in quel caso lo si può ordinare^^).
    Sarebbe un idea?
    Un po' inappropriato: perché usare la ricerca binaria quando semplicemente bisogna ritornare l'i-esimo elemento di un array? Non è più semplice
    codice:
    return tuo_array[i];
    ?
    La ricerca binaria è sicuramente uno strumento tra i più potenti, nel ricercare un elemento in un insieme ordinato... ma in questo specifico caso non v'è alcuna ricerca da compiere. Comunque, qui si sta mettendo ancora più carne al fuoco e di sicuro non si aiuta m1ster_b1t
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Non riesco solo a capire come dire al programma di prendere solo i numeri dispari....
    cioe:
    2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Fai una ricerca sul crivello di Eratostene di cui parlavo prima ed avrai l'illuminazione... per semplificarti le cose, parti da un array di n+1 elementi (dove n è 50 nel tuo caso specifico, ma può essere qualsiasi numero) con tutti gli interi da 0 a n nelle rispettive posizioni... ovvero:
    codice:
    a[0] = 0;
    a[1] = 1;
    a[2] = 2;
    ...
    a[50] = 50;
    ...
    a[n] = n;
    si tratta di fare 2 cicli for, uno annidato nell'altro, ed è quanto. Niente di più, niente di meno.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

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.