tuttodiMC (Normal User)
Expert
Messaggi: 327
Iscritto: 29/10/2012
|
Salve a tutti con l'aiuto di un mio professore ho trovato l'algoritmo per calcolare i numeri primi. Ho fatto una scoperta eccezionale o no?
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
E' una scoperta eccezionale che fanno tutti quelli che programmano da 3 mesi
|
|
tuttodiMC (Normal User)
Expert
Messaggi: 327
Iscritto: 29/10/2012
|
eh ma che ne so io. tutti dicono che è un enigma per i matematici.
Ultima modifica effettuata da tuttodiMC il 05/05/2013 alle 15:47 |
|
Ultimo (Member)
Guru
Messaggi: 877
Iscritto: 22/05/2010
|
I numeri primi non hanno una simmetria spaziale
If ok Then GOTO Avanza else GOTO Inizia
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
Postato originariamente da tuttodiMC:
eh ma che ne so io. tutti dicono che è un enigma per i matematici. |
Ci sono molte ricerche riguardo alcune delle proprietà dei numeri primi (o di sottoinsiemi speciali dei numeri primi, come i primi di Mersenne, i primi gemelli, ecc...) e tutt'ora si tratta di un campo di ricerca aperto.
Tuttavia, calcolare se un numero è primo oppure no è un compito che è stato risolto da molti secoli, niente di eclatante insomma
EDIT: http://it.wikipedia.org/wiki/Eratostene_di_Cirene#Matematica
Eratostene, ad esempio, ci era riuscito 2200 anni fa ;-) Ultima modifica effettuata da TheKaneB il 05/05/2013 alle 22:03 |
|
pierotofy (Admin)
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
|
No, pero' complimenti! E' sempre una bella soddisfazione personale.
|
|
tuttodiMC (Normal User)
Expert
Messaggi: 327
Iscritto: 29/10/2012
|
NO, io ho fatto un programma che calcola quali sono i numeri primi da 2 a n e non un programma che verifica se lo sono.
Codice sorgente - presumibilmente Delphi |
program numeriprimi; uses crt; var j, i:integer; var primo:boolean; begin writeln('Scrivi il numero massimo'); readln(num); writeln(2); for j := 3 to num do begin primo := true; for i := 2 to (j - 1) do begin if (j mod i = 0) then begin primo := false; end; end; if primo = true then writeln(j); end; end; end.
|
|
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
Questa parte del tuo algoritmo calcola se "j" è un primo
Codice sorgente - presumibilmente Delphi |
for i := 2 to (j - 1) do begin if (j mod i = 0) then begin primo := false; end;
|
E riutilizzi questo algoritmo "num" volte, per tirare fuori la lista dei primi da 0 fino a "num".
Ora leggiti l'algoritmo di Eratostene che ho linkato qualche post più su, così puoi studiare un metodo più raffinato che fa la stessa cosa con un numero inferiore di passaggi
|
|
tuttodiMC (Normal User)
Expert
Messaggi: 327
Iscritto: 29/10/2012
|
Mi sembra tu stia parlando del suo Crivello, giusto? Ho preferito partire con uno script più intuitivo. Piuttosto cosa c'entrano con la crittografia asimmetrica (mi sa)?
|
|