Advertisement
Hezov

Descompunere rapida in factori primi

Jun 30th, 2025
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.81 KB | None | 0 0
  1. // Dandu-se n numere naturale, sa se afiseze descompunerea in factori primi a acestora.
  2. // n <= 10^6, fiecare numar este pana in 10^6
  3. #include <iostream>
  4. using namespace std;
  5. const int mxN = 1e6;
  6. int ciur[mxN+10];
  7. void build_ciur()
  8. {
  9.     for(int i = 2;i<=mxN;i++)
  10.         if(ciur[i] == 0)
  11.         for(int j = i;j<=mxN;j+=i)
  12.             if(ciur[j] == 0)
  13.                 ciur[j] = i;
  14. }
  15. int main()
  16. {
  17.     build_ciur();
  18.     int n, x ;
  19.     cin >> n ;
  20.     for(int i = 1;i<=n;i++)
  21.     {
  22.         cin >> x;
  23.         cout << "Descompunerea pentru " << x << ":\n";
  24.         while(ciur[x] != 0)
  25.         {
  26.             int p = ciur[x], exp = 0;
  27.             while(ciur[x] == p)
  28.                 exp++, x /= ciur[x];
  29.             cout << p << '^' << exp << '\n';
  30.         }
  31.         cout << '\n';
  32.     }
  33.     return 0;
  34. }
  35.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement