Gentilmente qualcuno mi direbbe se questo metodo di fattorizzazione è conosciuto ?

P_1_6
gentilmente qualcuno mi direbbe se questo metodo di fattorizzazione è conosciuto ?

sia $N=p*q$

$[a^(N^2)-a] mod (a*N^2)=X$

$gcd(X,N)=p$ or $q$

dove $a$ è un numero naturale pari $> 0$

P.s. non sempre funziona

Risposte
sivepofo
"utente__medio":

E quindi in definitiva

$(a^(N^2)-a) mod aN^2 = a(a^(N^2-1) mod N^2-1)$


Ne sei proprio sicuro? Non è che intendevi qualche cosa tipo

$(a^(N^2)-a) mod a N^2=a (a^(N^2-1)-1) mod N^2$

P_1_6
Ho scoperto forse una cosa:

se $p$ è primo per ogni $n > 1$ si avrà

$[2^((p^n)^2)-2] mod [2*((p^n)^2)]=X$

$gcd(X,p^n)=p$

Non è "se e solo se" poichè ci sono pseudoprimi (Esempio $15$)

utente__medio11
"sivepofo":
[quote="utente__medio"]
E quindi in definitiva

$(a^(N^2)-a) mod aN^2 = a(a^(N^2-1) mod N^2-1)$


Ne sei proprio sicuro? Non è che intendevi qualche cosa tipo

$(a^(N^2)-a) mod a N^2=a (a^(N^2-1)-1) mod N^2$[/quote]
Quale passaggio riportato nel seguente post

https://www.matematicamente.it/forum/vi ... 0#p8683625

non ti convince?

sivepofo
Potrei essere totalmente accecato ma non mi pare una uguaglianza.

I conti della serva per

$a=5$
$n=3$

$(5^(3^2) - 5) mod 5*3^2$

non sono uguali ai conti

$5(5^(3^2 - 1) mod 3^2 - 1)$

P_1_6
"P_1_6":
l'ho implementato è funziona anche con a dispari.
non sembrerebbe particolarmente efficiente

sorgente scritto in C con GNU MP Library
https://github.com/Piunosei/factorizati ... 38132533.c


Ciao @Martino
questa implementazione
Dato un numero $M=a^n$ conoscendo solo $M$ trova $a$ ovvero la base di $log_a (M)=n$

con $a$ primo funziona sicuramente,
se $a$ non è primo non funziona in tutti i casi

se $a$ è primo e $n>1$ la soluzione si trova in $log_2 (M^2)$ $+$ il tempo del calcolo del $mcd(X,M)$

dove

$[2^(M^2)-2] mod [2*(M^2)]=X$

che si risolve con

"elevazione a potenza in aritmetica modulare mediante quadrati successivi"

come mi ha insegnato Eel Ffilibustero

quindi

$gcd(X,M)=a$

Che ne pensi ?

utente__medio11
"sivepofo":
Potrei essere totalmente accecato ma non mi pare una uguaglianza.

I conti della serva per

$a=5$
$n=3$

$(5^(3^2) - 5) mod 5*3^2$

non sono uguali ai conti

$5(5^(3^2 - 1) mod 3^2 - 1)$

A me sembra che facciano entrambi $30$.
Io l'espressione

$a(a^(N^2-1) mod N^2-1)$

la intendo come

$a[(a^(N^2-1) mod N^2)-1]$

e non come

$a[a^(N^2-1) mod (N^2-1)]$

Per caso nasce da qui il misunderstanding?
Inoltre a questo punto mi sorge un dubbio: abituato all'operatore [inline]%[/inline] del C/C++, ho dato per scontato che anche $mod$ avesse la stessa priorità di moltiplicazione e divisione, è così?

sivepofo
Bravo! Credo proprio che tu abbia centrato il bersaglio.

Io avrei sempre scritto

$a ≡ b (mod m)$

come comanda la Matematica. Invece ho usato x mod y solo per adeguarmi al vostro stile.
In questo ed in tutti gli altri posto che il nostro Woody scrive su decine e decine di forum e pagine fessbucco
non si vede nulla che abbia a che fare con la Matematica.

Gli operatori di un linguaggio di programmazione fanno ognuno come gli pare e necessitano nel caso di parentesi ben piazzate.
Il % del "C" può comportarsi in modo completamente differente dall'operatore in un altro linguaggio.

utente__medio11
Sinceramente non so cosa comanda la Matematica, quindi chiedo:

- è corretto utilizzare $mod$ come un operatore e scrivere una cosa del genere: $17 mod 5 = 2$ ?

- in tal caso qual è la priorità di tale operatore? Io, forse sbagliando non so, gli ho attribuito la stessa precedenza di moltiplicazione e divisione, ma se non è così potete dirmelo, in modo che io sappia come regolarmi con le parentesi?

utente__medio11
Dite che devo creare una discussione apposita per avere una risposta circa i dubbi sollevati nel mio precedente post?

P_1_6
"utente__medio":
Dite che devo creare una discussione apposita per avere una risposta circa i dubbi sollevati nel mio precedente post?


L'autorevole wolframalpha dice così:

https://www.wolframalpha.com/input?i=7+mod+3+-1%3DX

https://www.wolframalpha.com/input?i=%2 ... %29+-1%3DX

spero di averti tolto i dubbi

utente__medio11
"P_1_6":
spero di averti tolto i dubbi

Non del tutto, grazie comunque.

EDIT:
A scanso di equivoci ho aggiornato il mio precedente post aggiungendo delle parentesi.

"utente__medio":
Sinceramente non so cosa comanda la Matematica, quindi chiedo:

- è corretto utilizzare $mod$ come un operatore e scrivere una cosa del genere: $17 mod 5 = 2$ ?

- in tal caso qual è la priorità di tale operatore? Io, forse sbagliando non so, gli ho attribuito la stessa precedenza di moltiplicazione e divisione, ma se non è così potete dirmelo, in modo che io sappia come regolarmi con le parentesi?


Non ho letto la parte precedente della discussione, ma farei le cose in modo standard usando $a \equiv b $ $(\mod c)$, cosicché nessuno possa avere dubbi sul fatto che si stia affermando che il numero $a$ appartenga alla stessa classe di congruenza di $b$ modulo $c$ (in pratica, che se continuiamo a sottrarre $c$ ad $a$ prima o poi otterremo un numero non negativo, tra zero e $c-1$, che è proprio $b \in \{0,1,2,\ldots,c-1}$).
Per converso, mi par di ricordare che sulla OEIS fosse accettata anche una scrittura senza parentesi in cui si considerava "mod $c$" come operatore, ma francamente, come minimo, mi aspetterei di trovare una definizione a monte dell'articolo in cui mi si chiarisca tale convenzione (per capirci, pongo il numero di "tacche" sull'orologio pari a $c$ e ciò che scrivo dopo "mod $c$", senza parentesi, corrisponde alla classe di resto modulo $c$ del numero che scrivo prima del suddetto operatore "mod").

sivepofo
In effetti. Quando ho scritto Matematica mi riferivo a Gauss (del resto se non lui chi altro?)
L'operatore mod non è la congruenza e prendere come riferimento un linguaggio formale per macchine tipo il "C" non ha significato per me.

Dici "C", io dico: quale compilatore, con quale architettura, quando la precisione cala fino a dare i numeri del lotto come risultato?

In oltre come ho scritto ogni linguaggio per macchine fa a modo suo. Dove prende il segno? Come è implementato? Usa la funzione floor?

utente__medio11
Per la cronaca, poi ho aperto un topic apposito: https://www.matematicamente.it/forum/vi ... 1&t=240677

"marcokrt":
Non ho letto la parte precedente della discussione, ma farei le cose in modo standard usando $a≡b (modc)$, cosicché nessuno possa avere dubbi sul fatto che si stia affermando che il numero $a$ appartenga alla stessa classe di congruenza di $b$ modulo $c$ ...

Non so cosa intendi con standard, ma mi sembra di capire che nulla vieti di utilizzare $mod$ come operatore binario e non per forza come relazione ternaria, o sbaglio?

"sivepofo":
In effetti. Quando ho scritto Matematica mi riferivo a Gauss (del resto se non lui chi altro?)
L'operatore mod non è la congruenza e prendere come riferimento un linguaggio formale per macchine tipo il "C" non ha significato per me.

Dici "C", io dico: quale compilatore, con quale architettura, quando la precisione cala fino a dare i numeri del lotto come risultato?

In oltre come ho scritto ogni linguaggio per macchine fa a modo suo. Dove prende il segno? Come è implementato? Usa la funzione floor?

Scusa, ma secondo me tutta questa manfrina non ha molto senso... soprattutto se si considera che tutto sarebbe nato dalla mia seguente domanda:
"utente__medio":
Inoltre a questo punto mi sorge un dubbio: abituato all'operatore [inline]%[/inline] del C/C++, ho dato per scontato che anche $mod$ avesse la stessa priorità di moltiplicazione e divisione, è così?

P_1_6
"P_1_6":
Ho scoperto forse una cosa:

se $p$ è primo per ogni $n > 1$ si avrà

$[2^((p^n)^2)-2] mod [2*((p^n)^2)]=X$

$gcd(X,p^n)=p$

Non è "se e solo se" poichè ci sono pseudoprimi (Esempio $15$)


In generale deve essere per ogni $A$ intero maggiore di $1$ cioè:

se $p$ è primo per ogni $n > 1$ si avrà

$[A^((p^n)^2)-2] mod [A*((p^n)^2)]=X$

$gcd(X,p^n)=p$

Ho scritto un test di non primalità in C con la libreria GNU MP

https://github.com/Piunosei/Lepore_prim ... st_nr_25.c

p.s.
per "non primalità" intendo che se il test dice che non è primo allora non è primo
se non è primo o è pseudo primo (fattorizzabile) o primo

P_1_6
"P_1_6":
[quote="P_1_6"]Ho scoperto forse una cosa:

se $p$ è primo per ogni $n > 1$ si avrà

$[2^((p^n)^2)-2] mod [2*((p^n)^2)]=X$

$gcd(X,p^n)=p$

Non è "se e solo se" poichè ci sono pseudoprimi (Esempio $15$)


In generale deve essere per ogni $A$ intero maggiore di $1$ cioè:

se $p$ è primo per ogni $n > 1$ si avrà

$[A^((p^n)^2)-2] mod [A*((p^n)^2)]=X$

$gcd(X,p^n)=p$

Ho scritto un test di non primalità in C con la libreria GNU MP

https://github.com/Piunosei/Lepore_prim ... st_nr_25.c

p.s.
per "non primalità" intendo che se il test dice che non è primo allora non è primo
se non è primo o è pseudo primo (fattorizzabile) o primo[/quote]

Scusatemi per il refuso
corretto è
$[A^((p^n)^2)-A] mod [A*((p^n)^2)]=X$

P_1_6
"P_1_6":
[quote="P_1_6"]l'ho implementato è funziona anche con a dispari.
non sembrerebbe particolarmente efficiente

sorgente scritto in C con GNU MP Library
https://github.com/Piunosei/factorizati ... 38132533.c


Ciao @Martino
questa implementazione
Dato un numero $M=a^n$ conoscendo solo $M$ trova $a$ ovvero la base di $log_a (M)=n$

con $a$ primo funziona sicuramente,
se $a$ non è primo non funziona in tutti i casi

se $a$ è primo e $n>1$ la soluzione si trova in $log_2 (M^2)$ $+$ il tempo del calcolo del $mcd(X,M)$

dove

$[2^(M^2)-2] mod [2*(M^2)]=X$

che si risolve con

"elevazione a potenza in aritmetica modulare mediante quadrati successivi"

come mi ha insegnato Eel Ffilibustero

quindi

$gcd(X,M)=a$

Che ne pensi ?[/quote]




In effetti si dovrebbe risolvere per ogni numero naturale $A >=2$

$[A^(M^2)-A] mod [A*(M^2)]=X$

$gcd(X,M)=a$

e scegliere $a$ minimo

poichè potrebbe capitare che $a^i$ (con $2<=i<=n$) sia un pseudo-primo in $A$

Esempio $a=1093$

$a^2=1093^2=1194649$ è un pseudo-primo per $A=2$

quindi ad esempio per $1093^4$ l'algoritmo ci restituirà $1093^2=1194649$

questa cosa l'ho notata grazie a Perig (utente di mersenneforum.org)

sivepofo
1093 ?!?!
Interessante... se ne conosce solo un altro simile.
Dacci sotto che scopri il terzo

P_1_6
"sivepofo":
1093 ?!?!
Interessante... se ne conosce solo un altro simile.
Dacci sotto che scopri il terzo


si ne ho trovati solo due tali che

$[A^((a^n)^2)-A] mod [A*((a^n)^2)]=X$

$gcd(X,a^n)=a^n$

con $A=2$ ed $n$ da $2$ a $64$

e con $a$ (dispari) da $3$ a $1000001$

$a=1093$ (numero primo)
$a=3511$ (numero primo)

Gentilmente potresti provarci tu ?

sivepofo
NO!
E non perché sono scortese ma perché
1) sul forum del frate, sai quello in mano alle agenzie governative deviate, ti hanno detto di quali numeri si tratta
2) mi rimane ancora un bricciolo di sanità mentale per non impegnarmi in imprese di questo tipo

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