_no0B

Untitled

Nov 14th, 2021
980
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. int bigmod(int a , int p , int mod) /// (a ^ p) % mod
  2. {
  3.     if(p == 0) return 1;
  4.     int ans = bigmod(a , p/2 , mod); /// p = 9 , p/2 = 4
  5.     ans = 1LL * ans * ans % mod; /// ans = a ^ 8
  6.     if(p % 2 == 1){
  7.         ans = 1LL * ans * a % mod;
  8.     }
  9.     return ans;
  10. }
  11.  
  12. /// factor = 2
  13. /// multiple: 2 , 4, 6 , 8 , 10 , 12 , 14 , ...
  14.  
  15. vector < int > factors[N];
  16.  
  17. void factorize(int n) /// factorize from 1 to n
  18. {
  19.     for(int factor = 1 ; factor <= n ; factor++){ /// O(n)
  20.         for(int multiple = factor ; multiple <= n; multiple += factor){
  21.             factors[multiple].push_back(factor);
  22.         }
  23.     }
  24. }
  25.  
  26.  
  27.  
  28. vector < int > sieve(int n)
  29. {
  30.     vector < int > prime;
  31.     vector < bool > vis(n+1);
  32.     for(int i = 3 ; 1LL*i*i <= n; i += 2){ /// O(sqrt(n))
  33.         if(vis[i] == 0){ /// 'i' is a prime /// i = 11
  34.             for(int j = i*i ; j <= n ; j += i+i){ /// j = 22
  35.                 vis[j] = 1;
  36.             }
  37.         }
  38.     }
  39.     prime.push_back(2);
  40.     for(int i = 3 ; i <= n ; i += 2){
  41.         if(vis[i] == 0) prime.push_back(i);
  42.     }
  43.     return prime;
  44. }
  45.  
  46.  
  47. vector < pair < LL , int > > PrimeFactorize(LL n)
  48. {
  49.     vector < pair < LL , int > > ans;
  50.     vector < int > prime = sieve(1e6);
  51.     for(int p:prime){
  52.         if(n % p == 0){
  53.             int cnt = 0;
  54.             while(n % p == 0){
  55.                 n /= p;
  56.                 cnt++;
  57.             }
  58.             ans.push_back({p  , cnt});
  59.         }
  60.     }
  61.     if(n > 1){
  62.         ans.push_back({n , 1});
  63.     }
  64.     return ans;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment