Discussione:Numero primo/Archivio

message: Salve,
Costruendo un programma in Fortran ho constatato la seguente proprietà:
"I numeri difettivi risultano 3/4 del totale dei numeri naturali, il restante quarto sono numeri abbondanti. I numeri perfetti che separano i difettivi dagli abbondanti sono in percentuale trascurabile che va progressivamente diminuendo (questo non é comunque in contrasto con la congettura della loro infinità). Inoltre I numeri lievemente difettivi hanno una percentuale che decresce più o meno come i numeri perfetti; numeri lievemente abbondanti, come era auspicabile, non ne ho trovati".
Questa proprietà di suddivisione 3/4-1/4 mi ha molto colpito e non so se sia già nota. La mia non é cero una dimostrazione, ma solo una verifica spinta, per ragioni di potenza di calcolo, fino al numero 70000. Per la cronaca giunti a questo punto le percentuali sono state:
numeri difettivi: 75,2%
numeri abbondanti: 24,8 %
numeri perfetti: percentuale trascurabile (4/70000)
inoltre:
numeri primi (che sono dei difettivi): circa 12% (con tendenza a scendere, nonstante la loro dimostrata inifinità, ma questo penso ia noto)
numeri lievemente difettivi: percentuale trascurabile (più alta dei perfetti)
numeri lievemente abbondanti: 0
Fatemi sapere
:fuochino. Se guardi qua (verso il fondo della pagina) scoprirai che nel 1998 Deléglise ha dimostrato che i numeri abbondanti sono tra il 24.74% e il 24.80% di tutti i numeri. -- .mau. ✉ 09:41, 13 nov 2006 (CET)
thread_title:  Densità di numeri difettivi e abbondanti 

message: Grazie Mau per la spiegazione (anche se ha messo rapidamente fine ai miei sogni di gloria matematica). Visto che sei stato così gentile e sei sicuramente molto competente, ti sottopongo un' altra "scoperta". Io non sono molto pratico di Wikipedia, quindi non so se questo sia il luogo più adatto a discussioni di questo tipo e in questa forma comunque...Naturalmente qualunque altro suggerimento é benvenuto. In sintesi:
E' noto che non esistono numeri lievemente abbondanti (indici di abbondanza pari a 1).Avrei scoperto che anche gli altri numeri per così dire "poco abbondanti" (indice di abbondanza pari a 2,3,4, ecc.) sono estrememente pochi ad un certo punto finiscono. Per esempio di numeri che ho chiamato trilievementi abbondanti (indice di abbondanza pari a 3) ne esiste soltanto uno, il 18. Sembra altresì di poter dire che per qualsiasi indice di abbondanza scelto, esistano alcuni numeri e poi basta, anche se si prende come indice 1000, si trovano soltanto due numeri (9580 e 11776). Questo discorso sulla scarsità dei numeri aventi un qulasiasi determinato grado di abbondanza, potrebbe essere di aiuto per capire e magari dimostrare il perché dell' inesistenza dei numeri lievemente abbondati (grado di abbondanza pari a 1), proprietà gia nota ai Greci, ma, a tutt' oggi, mai dimostrata (un po' come l' ultimo Teorema di Fermat che però mi pare sia stato ormai dimostrato).
:non sono un grandissimo esperto di teoria dei numeri, o detto in altro modo so poco più delle definizioni di base. Così ad occhio è probabile che per ogni N i numeri "abbondanti per N" siano finiti, ma da qua a dimostrarlo ce ne vorrebbe... 
:per i numeri lievemente abbondanti, non saprei che dirti. -- .mau. ✉ 17:55, 20 nov 2006 (CET)
thread_title:  Numeri "poco" abbondanti 

message: Perdonatemi l'insolenza, ma il programmino presentato nella voce non mi piace molto. 
L'ho riscritto in modo che io considero più leggibile:
#include <stdio.h>
#define N 1000
main()
{
   int op,div,flag;
   for (op=1;op<=N;op++)
   {
      flag=1;
      if (op%2==0)
      {
         flag=0;
      } else {
         div=3;
         while (div*div<=op)
         {
            if (op%div==0)
            {
               flag=0;
               break;
            }
            div+=2;
         }
      }
      if (flag) printf ("%d; ",op);
   }
}
Poi visto che mi ci trovavo ne ho scritto uno ottimizzato che effettua le divisioni utilizzando solo i numeri primi precedentemente calcolati
#include <stdio.h>
#define N 1000
#define MAX_N 200
main()
{
   long int n_primi[MAX_N];
   long int op,div;
   int flag,i,n=0;
   for (op=2;op<=N;op++)
   {
      flag=1;
      i=0;
      while ((i<n) && (n_primi[i]*n_primi[i]<=op))
      {
         if (op%n_primi[i++]==0)
         {
            flag=0;
            break;
          }
      }
      if (flag) n_primi[n++]=op;
   }
   for (i=0;i<n;i++)
   printf ("%d; ",n_primi[i]);
}
Il primo impiega 19646 iterazioni per trovare i numeri primi dei primi 1000 interi, il secondo 1970 (!). Ovviamente esistono ulteriori possibili ottimizzazioni, ma poi la complessità cresce.
Proporrei di, dopo averli opportunamente modificati, di inserirli sulla voce.
Vulkano 11:58, 21 mar 2007 (CET)
thread_title:  Programmini 

message: ... osservando il crivello di Eratostene ...
s'identificano tutti i pari con il numero primo " 2 " e i multipli di " 5 " come tutti NON primi ( ..0 ..5 )
http://upload.wikimedia.org/wikipedia/commons/6/63/Animation_Sieb_des_Eratosthenes.gif
trascurando perciò i primi 2 e 5, tutti gli altri primi (infiniti per definizione) terminano con 1, 3, 7 e 9;
naturalmente non "tutti" gli n terminanti con 1, 3, 7 e 9 sono "numeri primi".
Ora poniamo di nominare con delle variabili i 4 elementi identificanti le tipologie ...
b = 1
d = 3
p = 7
q = 9
si può notare che b ruotato di 180° diventa q
ed anche il char. d ruotato di 180° diventa p
indi considerando che l'elevazione a potenza di un qualsiasi numero primo di tipo b da come risultato un n con finale b
e che un qualsiasi numero primo di tipo q (con cifra come finale es: 19, 29, 59 ..etc.) da egualmente un n con finale b
è possibile affermare, che qualsiasi numero primo terminante con b oppure q generi al quadrato un n non primo di tipo b
Esaminiamo ora il comportamento degli altri 2 elementi ( d, p ); ogni d^2 e ogni p^2 genera un n con finale di tipo ..q
ricapitolando :
b*b=n..b     []..[] 11*11=121 []...[] 31*31=961 ° ° ° b = ..1
d*d=n..q     []..[] 3*3=9 []..[] 13*13=169 ° ° ° q = ..9
p*p=n..q     []...[] 7*7=49 []...[] 17*17 = 289 ° ° ° q = ..9
q*q=n..b     []...[] 19*19=361 []...[] 29*29=841 ° ° ° b = ..1
bene, nel caso appena descritto,
non ci sono "n" da eliminare terminanti con ..d oppure ..p ( 3 oppure 7 ) per i quadrati di n.
quanto detto vale per i quadrati di un qualsiasi numero primo.
... Ebbene siamo già a metà della dimostrazione ...
[ 1 ]   per definizione si considera neutro
p 2
p 3 primo
p 5
p   7
np          9 - non primo    ( d * d = q )
p  11
p  13
np             non primi : 15 25 35 ... ..5 (infiniti)
p  17
p  19
passiamo alla logica matematica per escludere tutti i " b d p q " non primi, quello che rimane è l'insieme N(p).
per ogni tipo " b d p q " esiste una formula di 4 elementi che si ripete per 10v ( n*10=10v es. 103*10=1030) infinitamente.
poiché ogni "n" dispari sommato a un "n" dispari genera un "n" pari, i dispari possiamo trascurarli ( es : 1+1=2 1+3=4 1+7=8 )
poniamo allora che si devono sommare ai quadrati di " b d p q " 5 tipologie di moltiplicatori ( pari 0 2 4 6 8 );
poniamo ancora per comodità di ragionamento di assegnarli a variabili generiche ( come per ... 1 3 7 9 : b d p q )
avremo allora :
a=0
e=2
i=4
o=6
u=8
notare le 5 vocali dell'alfabeto romano ... http://en.wikipedia.org/wiki/AEIOU
la formula che ne deriva,
è ... che per la tipologia b ( 1 )
otterremo sempre :
b^2+ab= ..b  (11*11+00=121) w_b ( as v_b ) as = pseudo variabile generica
b^2+eb= ..d  (11*11+22=133) w_d ( as v_d )
b^2+ib= ..5  (11*11+44=165) attenzione se n finisce per 5 possiamo trascurarlo !!! per il numero primo 5
b^2+ob= ..p  (11*11+66=177) w_p ( as v_p )
b^2+ub= ..q  (11*11+88=209) w_q ( as v_q )
per la formula b, sempre s'intende qualsiasi numero primo di tipo b ( con cifra finale 1 ) ( 11, 31, 41 ... 1nfinito )
la formula derivata per la tipologia d ( 3 ) da sempre :
d^2+ad= ..q  (13*13+00=169) x_q ( as v_q ) as = pseudo variabile generica
d^2+ed= ..5  (13*13+26=195) attenzione se n finisce per 5 possiamo trascurarlo !!! per il numero primo 5
d^2+id= ..5  (13*13+52=221) x_b ( as v_b )
d^2+od= ..p  (13*13+78=247) x_p ( as v_p )
d^2+ud= ..q  (13*13+104=273) x_d ( as v_d )
per la formula d, sempre s'intende qualsiasi numero primo di tipo d ( con cifra finale 3 ) ( 3, 13, 23 ... 3nfinito )
la formula derivata per la tipologia p ( 7 ) da sempre :
p^2+ap= ..q  (7*7+00=49) y_q ( as v_q ) as = pseudo variabile generica
p^2+ep= ..d  (7*7+14=63) y_d ( as v_d )
p^2+ip= ..p  (7*7+28=77) y_p ( as v_p )
p^2+op= ..b  (7*7+42=91) y_b ( as v_b )
p^2+up= ..5  (7*7+56=105) attenzione se n finisce per 5 possiamo trascurarlo !!! per il numero primo 5
per la formula p, sempre s'intende qualsiasi numero primo di tipo p ( con cifra finale 7 ) ( 7, 17, 37 ... 7nfinito )
la formula derivata per la tipologia q ( 9 ) da sempre :
q^2+aq= ..b  (19*19+00=361) z_b ( as v_b ) as = pseudo variabile generica
q^2+eq= ..q  (19*19+38=399) z_q ( as v_q )
q^2+iq= ..p  (19*19+76=437) z_p ( as v_p )
q^2+oq= ..5  (11*11+66=475) attenzione se n finisce per 5 possiamo trascurarlo !!! per il numero primo 5
q^2+uq= ..d  (11*11+88=513) z_d ( as v_d )
per la formula q, sempre s'intende qualsiasi numero primo di tipo q ( con cifra finale 9 ) ( 19, 29, 59 ... 9nfinito )
v_b, v_d, v_p, v_q si ripeteranno all'infinito per ogni 10 volte n per tutti i gruppi w_ x_ y_ z_
esempio :
per      x_d
esempio    3*3+00=9+30=39+30=69+30=99+...infinitamente30...=..q (..9)
per      y_p
esempio    7*7+00=49+70=119+70=189 + ...infinitamente70... =..q (..9)
esaminiamo z_q :
q^2 + aq= ..b (29*29+000=841) z_b
q^2 + eq= ..q (29*29+058=899) z_q
q^2 + iq= ..p (29*29+116=957) z_p
q^2 + oq= ..5 (29*29+174=1015)         trascurare per il 5
q^2 + uq= ..d (29*29+232=1073) z_d
quindi consideriamo che quanto su esposto per i 4 gruppi di pseudo variabili generali v_b, v_d, v_p, v_q :
w_b w_d w_p w_q
x_b x_d x_p x_q
y_b y_d y_p y_q
z_b z_d z_p z_q
gli algoritmi esposti "sono" UNIVERSALMENTE corrispondenti.
concludendo :
b d p q
----
a a a a
----
e - e e            [] . . . [] notare la specularità con u a 180°
 -  i  i  i                 []
o o o -                    [] . . . [] notare la specularità con i a 180°
u u - u          []
"i-o" centrali ed orizzontali
"e-u" agli angoli e verticali
"a*a" ininfluenti = 0
----
tabella "j" moltiplicatori per ogni "n" primo
----
b d p q d b p q b d p q b d p q
a  i o a  e u e u  o o i  i  u a a e
b b b b d d d d p p p p q q q q
a e o u  i u o a  o e i a  a u  i e
b d p q d b p q b d p q b d p q
----
ecco allora che, si può definire che fino a 120 i numeri primi sono definiti da 2 3 5 7; (11^2-1)
3 : -9 -39 -69 -99 : -21 -51 -81 -111 : -27 -57 -87 -117 : -33 -63 -93 ( -123 > 120 )
7 : -49 -119 : -63 : -77 : -91
fino a 168 sono definiti da 2 3 5 7 11; (13^2-1) numero primo p^2-1
fino a 288 sono definiti da 2 3 5 7 11 13; (17^2-1) numero primo p^2-1 ... all'infinito
etc. etc.
CDD, al "genere umano" farne ciò che meglio crede !!!
bdpq(aeiou)∞
N(n>1∞)=(k=2,d,5,(..b,..d,..p,..q)∑√n...0 - n ? ( n - ( k^2 + jk ) % 10k ) ⇔ 0
... ζ(s)=0
----
----
Carlo M. Daniele ( cmd ) (3,14 2007) uptd. 9,12 2008 wikipedia publ. 10,10 2008
----
----
∞
:Molto divertente O__o Ζεττι­­ ◙
Se è solo per questo:
:definito
\pi(k) = k - 1 + \sum_{j=2}^k \left\lfloor {2 \over j} \left(1 +  \sum_{s=1}^{\left\lfloor\sqrt{j}\right\rfloor} \left(\left\lfloor{ j-1 \over s}\right\rfloor - \left\lfloor{j \over s}\right\rfloor\right) \right)\right\rfloor                  
Allora l'n-esimo numero primo p_n è 
:p_n = 1 + \sum_{k=1}^{2(\lfloor n \ln(n)\rfloor+1)} \left(1 - \left\lfloor{\pi(k) \over n} \right\rfloor\right). 
--BW Insultami 11:45, 16 ott 2008 (CEST)
thread_title:  soluzione "identificazione" di TUTTI i numeri primi ... N(p>1∞) 

message: Salve.
Vorrei aggiungere una procedura in Visual Basic, usata per costruire un piccolo applicativo per estrarre i numeri primi interni a un dato intervallo. Dato che il VB è piuttosto semplice da usare, ritengo opportuno inserirla.
All'interno di una form, il bottone Command1 lancia questa procedura:
Private Sub Command1_Click()
Dim r, c, d As Integer
Dim p, a, i, j As Double
Command1.Enabled = False
p = CDbl(Text1.Text)
a = CDbl(Text2.Text)
If p >= a Then
    MsgBox "ATTENZIONE: i numeri inseriti non sono corretti", 16, "VERIFICA DATI"
    nuovo
    Exit Sub
End If
r = MsgBox("Vuoi anche creare il file contenente i numeri primi?", 4 + 256, "NUMERI PRIMI")
MousePointer = 11
If r = 6 Then Open "C:\numeri primi.txt" For Output As #1
For i = p To a
    d = 0
    For j = 2 To (i / 2)
        If i / j = Int(i / j) Then
            d = d + 1
            Exit For
        End If
    Next j
    If d = 0 Then
        c = c + 1
        If r = 6 Then Print #1, i; " ";
    End If
Next i
Label3.Caption = "I numeri primi compresi sono:"
label4.Caption = c
Label5.Caption = "Frequenza:"
Label6.Caption = c / (a - p + 1)
MousePointer = 1
Close #1
If r = 6 Then Command5.Enabled = True
Command2.Enabled = True
End Sub
:Algoritmi come questo sono stati spostati qualche tempo fa in Algoritmi per la generazione dei numeri primi. Tieni comunque presente che un inserimento del genere può essere considerato ricerca originale.--Dr Zimbu (msg) 17:51, 16 ott 2008 (CEST)
thread_title:  Algoritmo di creazione in VB