La Fattorizzazione e il calcolo delle probabilità

La Fattorizzazione e il calcolo delle probabilità
Di Cristiano Armellini ([email protected])
Supponiamo di considerare due eventi A, B tali che P(A) = 1/m, P(B)= 1/n e che A e B siano eventi
indipendenti tra di loro.
In base al calcolo delle probabilità possiamo scrivere:
Mentre
Quindi sostituendo e svolgendo le opportune semplificazioni ho che:
0 1 1
1
1
1
Quindi ho che 0 1 Ma questo vuol dire che se poniamo p = mn, esiste un d > 0:
1
Ovvero:
1 0
Che ha come soluzioni:
1 1 4
2
E che implica che 1 2 e d è un numero pari supponendo m, n dispari
Ecco allora una possibile implementazione per trovare i fattori interi del numero p = nm scritta in
linguaggio C++.
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int main(int argc, char *argv[])
{
double i, d, x, p;
long k;
i =0;
cout << "Inserisci il numero da fattorizzare ";
cin >> p;
d = -int(2*sqrt(p))+1+p;
x = (1+p-d-sqrt(pow(1+p-d, 2)-4*p))/2;
do{
x = (1+p-d-sqrt(pow(1+p-d, 2)-4*p))/2;
d = d-1;
i = i+1;
} while (floor(x) != x);
cout << x << "\n";
cout << "passaggi" << i << "\n";;
system("PAUSE");
return EXIT_SUCCESS;
}