Számának bővülésével a tényezők

Online faktorizációja


Bármennyi bontható elsődleges tényezők. Ennek eredményeként ugyanazok bomlás,
ha figyelmen kívül hagyjuk a sorrendben a belépés tényezők.






A sorrend az intézkedéseket, amelyek végzik a bomlás számokat prímtényezője matematika:

  • Ellenőrizze, hogy a javasolt szám prím.
  • Ha nem, akkor vegye fel, áthatva a jelek által, a megosztás, osztó, az egyszerű számok kezdve a legkisebb (2, 3, 5 ...).
  • Ismételje ezt a műveletet mindaddig, amíg saját akarat nem prím.

Ahhoz, hogy meghatározzuk a primality számos használható „algoritmus Szita Eratosthenes”.
A bővítés a prímtényezőjét programozási végzett hasonló módon:

    • Állítsa be a kezdeti érték egyenlő 2 elválasztó.
    • Ellenőrizze, hogy a számot elosztjuk az osztó. Ha igen, írja le a tényezők listája az osztó, és ossza száma az osztó.
    • Ismételjük meg az előző lépést, amíg a feltétel sokfélesége.
    • Ugrás a következő osztó (a legegyszerűbb esetben növekedés elválasztó 1)
    • Számítások teljes, ha a hányados lesz egyenlő 1.






Megvalósítás C ++

#include
using namespace std;
int main ()
int n, div = 2;
cout <<"N = " ;
cin >> N;
cout < míg (n> 1)
míg (n% div == 0)
cout <<" * " < n = n / div;
>
div ++;
>
cin.get (); cin.get ();
vissza 0;
>


Ha figyelembe vesszük, hogy a páros számú prímtényezője csak 2 lehetőség van, hogy csökkentse a ciklusok számának az algoritmus végrehajtása alatt további

#include
using namespace std;
int main ()
int n, div = 2;
cout <<"N = " ;
cin >> N;
cout < míg (n> 1)
míg (n% div == 0)
cout <<" * " < n = n / div;
>
ha (div == 2) div ++;
mást div + = 2;
>
cin.get (); cin.get ();
vissza 0;
>


Algoritmus faktorizációs is megvalósítható rekurzió:

#include
using namespace std;
void find (int n, int div)
ha (n == 1) visszatérési;
ha (n.iv == 0)
cout <<" * " < találni (N / div, div);
>
más
if (div == 2)
találni (N, div + 1);
más
találni (N, div + 2);
>
int main ()
int n, div = 2;
cout <<"N = " ;
cin >> N;
cout < találni (n, 2);
cin.get (); cin.get ();
vissza 0;
>