Generatore di numeri primi

P_1_6
Generatore di numeri primi

Inserendo al posto di p un numero primo nella forma 12*x+5
se per m=0 oppure n=0 questa ammette soluzioni intere
allora P è primo

$(p+1)/2+24*m*n+6*m+6*n+1=(2*(3*m+n+1))^2$
,
$24*m*n+6*m+6*n+1=3*(3*P-3)/6+1$

Risposte
Ma non è vero, per esempio se $p=317=12*26+5$ (primo), $n=6$, $m=0$ allora $P=25$ non è primo.

P_1_6
Si, grazie per il feedback
Devo aver commesso qualche errore concettuale

P_1_6
Ho trovato la verità e cioè

se $p=12*x+5$ questa quadrupla pitagorica è unica (ma non è se e solo se)

$d=36*m^2+18*m+4*n^2+2*n+3=(p+1)/2$
,
$a=24*m*n+6*m+6*n+1$
,
$b=2*(3*m+n+1)*(6*m-2*n+1)$
,
$c=2*(3*m+n+1)$
,
$a^2+b^2+c^2=d^2$

ricollegandomi al post https://www.matematicamente.it/forum/vi ... 6&t=236684

Non so se ho capito, stai dicendo che se $p$ è un primo del tipo $12x+5$ allora $((p+1)/2)^2$ si scrive in modo unico come somma di tre quadrati?

Ma qualsiasi quadrato $y^2$ si può scrivere come $0^2+0^2+y^2$.

P_1_6
"Martino":
Non so se ho capito, stai dicendo che se $p$ è un primo del tipo $12x+5$ allora $((p+1)/2)^2$ si scrive in modo unico come somma di tre quadrati?
.

Si

Allora quello che dici non è vero, perché per esempio se $p=17=12+5$ allora $((p+1)/2)^2 = 9^2 = 81$ si scrive in 3 modi come somma di 3 quadrati:

$9^2 = 1^2+4^2+8^2$
$9^2 = 3^2+6^2+6^2$
$9^2 = 4^2+4^2+7^2$

P_1_6
"Martino":
Allora quello che dici non è vero, perché per esempio se $p=17=12+5$ allora $((p+1)/2)^2 = 9^2 = 81$ si scrive in 3 modi come somma di 3 quadrati:

$9^2 = 1^2+4^2+8^2$
$9^2 = 3^2+6^2+6^2$
$9^2 = 4^2+4^2+7^2$


si scrive in modo unico come somma di tre quadrati di questa quadrupla

"P_1_6":
Ho trovato la verità e cioè

se $p=12*x+5$ questa quadrupla pitagorica è unica (ma non è se e solo se)

$d=36*m^2+18*m+4*n^2+2*n+3=(p+1)/2$
,
$a=24*m*n+6*m+6*n+1$
,
$b=2*(3*m+n+1)*(6*m-2*n+1)$
,
$c=2*(3*m+n+1)$
,
$a^2+b^2+c^2=d^2$

ricollegandomi al post https://www.matematicamente.it/forum/vi ... 6&t=236684



$9^2=7^2 +(-4)^2 +4^2$


EDIT:
e generalizzando $p=12*x+5 $

si ha che al variare di $h$

$(p-1)/2=d$ si scrive in modo unico in queste quadruple

$a == 6*(2*h + 1)*m + 6*(4*(2*h + 1)*m + 2*h + 1)*n + 3*h + 1$
,
$b == 36*(4*h^2 + 4*h + 1)*m^2 + 9*h^2 + 18*(4*h^2 + 4*h + 1)*m - 4*n^2 + 9*h - 2*n + 2$
,
$c == 6*(2*h + 1)*m + 3*h + 2*n + 2$
,
$d == 36*(4*h^2 + 4*h + 1)*m^2 + 9*h^2 + 18*(4*h^2 + 4*h + 1)*m + 4*n^2 + 9*h + 2*n + 3$

Rimanendo un attimo in argomento, e togliendo dettagli non necessari, stai dicendo in pratica che se $p$ è un primo della forma $12*x+5$ (con $x$ intero non negativo) allora l'equazione

$36*m^2+18*m+4*n^2+2*n+3=(p+1)/2$

ha un'unica soluzione intera $(m,n) in ZZ^2$. Questo potrebbe essere vero. Hai una dimostrazione?

P_1_6
Non sono pratico di dimostrazioni (ora ci provo)

Sia questa una terna pitagorica

$(6*x+5)^2-(6*y+3)^2=X^2$

allora


solve
$(6*x+5)=A^2+B^2$
,
$2*sqrt(9*x^2+15*x-9*y^2-9*y+4)=2*A*B$
,
$6*y+3=A^2-B^2$
,
$A$,$B$

si avrà

$B=sqrt(4 + 15 x + 9 x^2 - 9 y - 9 y^2)/sqrt(4 + 3 x + 3 y)$

chiamando

$d=(3*x+3)$
,
$a=(3*y+1)$
,
$b=sqrt(9*x^2+15*x-9*y^2-9*y+4)$
,
$c=sqrt(3*x+3*y+4)$

puoi notare la relazione

$a^2+b^2+c^2=d^2$

poi ho pensato sia $N=(4*n+1)*(4*m+1)$

ho chiamato

$A=((3*(4*m+1)+(4*n+1))/2)$

$B=((3*(4*m+1)-(4*n+1))/2)$

l'ho moltiplicato per $3$ poichè $A^2-B^2=6*y+3$ è multiplo di $3$

quindi ho risolto il sistema in $m$ ed $n$


$y=(((3*(4*m+1)+(4*n+1))/2)^2-((3*(4*m+1)-(4*n+1))/2)^2-3)/6$
,
$x=(((3*(4*m+1)+(4*n+1))/2)^2+((3*(4*m+1)-(4*n+1))/2)^2-5)/6$
,
$d=(3*x+3)$
,
$a=(3*y+1)$
,
$b=sqrt(9*x^2+15*x-9*y^2-9*y+4)$
,
$c=sqrt(3*x+3*y+4)$
,
$a^2+b^2+c^2=d^2$

ed ho ottenuto

$d=36*m^2+18*m+4*n^2+2*n+3$
,
$a=24*m*n+6*m+6*n+1=3*(3*N-3)/6+1$
,
$b=2*(3*m+n+1)*(6*m-2*n+1)$
,
$c=2*(3*m+n+1)$
,
$a^2+b^2+c^2=d^2$

ma $d=(3*x+3)$ ed $(6*x+5)=A^2+B^2$

sappiamo che $4*z+1$ primo si scrive in unico modo come somma di quadrati

quindi impongo $x$ pari quindi se $p=4*z+1=12*x+5$ è primo si scrive in unico modo come somma di quadrati

(perdona $x=2*x$)

quindi

$d=36*m^2+18*m+4*n^2+2*n+3=(p+1)/2$
,
$a=24*m*n+6*m+6*n+1=3*(3*N-3)/6+1$
,
$b=2*(3*m+n+1)*(6*m-2*n+1)$
,
$c=2*(3*m+n+1)$
,
$a^2+b^2+c^2=d^2$

si scrive in modo unico


che ne pensi ?

Quello che hai scritto purtroppo è illeggibile per me, non capisco niente.

P_1_6
ho testato a mano fino a $1001$

ed ho notato che

se $12*x+5$ è primo ci sarà una sola soluzione

se $12*x+5$ non è primo

o non ci sono soluzioni

o ha più di una soluzione

o se ne ha una $(4*n+1)*(4*m+1)=S*T^2$
quest'ultima cosa può significare due cose (avrei bisogno di un campione maggiore)
o $mcd(4*n+1,4*m+1)!=1$
o $(4*n+1)=s*t^2$ o $(4*m+1)=s*t^2$

se sei un programmatore potresti verificare questo?

Sì anch'io l'ho verificato fino a circa 1000, ma questa non è una dimostrazione.

P_1_6
Ma questa è la dimostrazione che
se $p$ è un primo nella forma $12*x+5$
allora questa scrittura
$36*m^2+18*m+4*n^2+2*n+3=(p+1)/2$
è unica con $n$ ed $m$ in $Z$

"P_1_6":
Non sono pratico di dimostrazioni (ora ci provo)


mentre questa è una congettura
se $12*x+5$ non è primo
o non ci sono soluzioni
o ha più di una soluzione
o se ne ha una $(4*n+1)*(4*m+1)=S*T^2$
quest'ultima cosa può significare due cose (avrei bisogno di un campione maggiore)
o $mcd(4*n+1,4*m+1)!=1$
o $(4*n+1)=s*t^2$ o $(4*m+1)=s*t^2$



P.s. @Admin non mi arrivano le notifiche via mail di una nuova risposta

I test fino a 1000 non sono dimostrazioni.

P_1_6

"P_1_6":
Intendo questa dimostrazione
https://www.matematicamente.it/forum/vi ... 1#p8670467

Per me è illeggibile. E comunque ti garantisco che non è una dimostrazione.

P_1_6
Devi osservare queste cose e la dimostrazione che ho fatto ti sembrerà chiara:

1)
tutte le terna pitagorica $u^2+v^2=r^2$ si scrive
$u=A^2-B^2$
$v=2*A*B$
$r=A^2+B^2$

2)
un numero dispari $3*N=3*q*p$ positivo o negativo multiplo si scrive
$((3*q+p)/2)^2-((3*q-p)/2)^2$

3)
Teorema di fermat sulle somme di due quadrati
un primo nella forma $4*z+1$ si scrive in modo unico come somma di quadrati

P_1_6
Sono un po arruginito come programmatore
l'inserimento può essere migliorato
ho fatto un test fino a $10000$ e la congettura sembrerebbe valida

inserisce nel vettore
ordina il vettore
controlla e scarta doppioni e se $mcd(4*n+1,4*m+1)!=1$ e se $p-5 mod 12 !=0$
infine rimangono solo primi
ho fatto anche un controllo se siano realmente primi con trial division

è solo un test ma si potrebbe creare un Crivello scritto perbene

Vi lascio il sorgente in linguaggio C



#include <stdlib.h>
#include <math.h>
#include <stdio.h>




void main(){
  int n,i,mcd,p,q,P=1,fattore,mom,temp1;
   int V[1898][3];

  n = insert_array(V);   // Inserimento degli elementi nell'array

  mergeSort(V, 0, n-1);  // Chiamata alla funzione merge sort

  for (i=0; P<=10001; i++) {
    P=V[i][0];
    P=2*P-1;

    p=V[i][1];
    p=4*p+1;
    q=V[i][2];
    q=4*q+1;
    MCD(p,q,&mcd);
    if ((mcd== 1 )&& ((V[i][0]!=V[i-1][0]) &&  (V[i][0]!=V[i+1][0]))){
        if (P%12==5){
             printf("id**************************%d \n",i);
            printf("primo************************%d \n",P);

        }
    printf("\n");
    mom=V[i][0];
    mom =2*mom-1;
    fattore=3;
    if (P%12==5){
         while (fattore<=sqrt(mom)){
        if(mom%fattore==0){
            printf("12*x+5=%d non è primo \n",P);
            scanf("%d",&temp1);
            break;
        }
        fattore=fattore+2;
        }
    }
  }
  }
  return;
}
void MCD (int n1,int n2 , int * mcd)
 /* calcola il massimo comun divisore di due interi * usando il metodo di
 Euclide */
{
 int resto, a, b;
 if(n1<0){n1=0-n1;}
  if(n2<0){n2=0-n2;}

if(n1>=n2){
 a = n1;
 b = n2;
 }else{
 a = n2;
 b = n1;
 }
 while (b > 0) {
 resto = a % b;
 a = b;
 b = resto;
 }

 *mcd=a;
}


// Funzione per l'inserimento degli elementi nell'array
int insert_array(int V[1898][3]) {
  int n=1898, i=0,a=-36,b=-13,p;


  while(i<1898) {

     while (a<=36){
     b=-13;
     while (b<=12){
     V[i][0]=36*b*b+18*b+4*a*a+2*a+3;
     V[i][1]=a;
     V[i][2]=b;
     b++;
    i++;
     }
     a++;
     }

  }
  return(n);
}


// Funzione per fondere due sotto-vettori ordinati in un unico vettore ordinato
void merge(int a[1898][3], int p,  int q, int r) {
 int i, j, k=0, b[1898][3];
  i = p;
  j = q+1;

  while (i<=q && j<=r) {
    if (a[i][0]<a[j][0]) {
      b[k][0] = a[i][0];
      b[k][1] = a[i][1];
      b[k][2] = a[i][2];
      i++;
    } else {
      b[k][0] = a[j][0];
      b[k][1] = a[j][1];
      b[k][2] = a[j][2];
      j++;
    }
    k++;
  }
  while (i <= q) {
    b[k][0] = a[i][0];
    b[k][1] = a[i][1];
    b[k][2] = a[i][2];
    i++;
    k++;
  }
  while (j <= r) {
     b[k][0] = a[j][0];
      b[k][1] = a[j][1];
      b[k][2] = a[j][2];
    j++;
    k++;
  }
  for (k=p; k<=r; k++){
    a[k][0] = b[k-p][0];
    a[k][1] = b[k-p][1];
    a[k][2] = b[k-p][2];

    }
  return;
}

// Funzione principale per eseguire il merge sort
void mergeSort(int a[1898][3],int p,int r) {
   int q;
  if (p < r) {
    q = (p+r)/2;
    mergeSort(a, p, q);    // Ordina il sotto-vettore sinistro
    mergeSort(a, q+1, r);  // Ordina il sotto-vettore destro
    merge(a, p, q, r);     // Unisci i sotto-vettori ordinati
  }
  return;
}






megas_archon
Congettura, dimostrazione, programma in C.. Queste cose sono tutte uguali per te, mi pare.

Se chiedi confronto con gli altri, dovresti essere pronto ad ascoltare chi ti risponde, e in questo caso mi sembri abbastanza sordo al fatto che ti stia venendo spiegato che una euristica o un programma in C non sono una dimostrazione

P_1_6
Della dimostrazione ne ho discusso con una persona e mi ha detto che sembrerebbe valida

per quanto riguarda la congettura è una congettura quindi non ho dimostrazione

se ti va possiamo discutere della dimostrazione. ok?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.