CodeTyper

W - Medium Factorization

Jul 30th, 2022
1,063
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. #define IOS ios_base::sync_with_stdio(false);
  4. #define Bye return 0
  5. #define CodeTyper main
  6. using ll = long long;
  7.  
  8. using namespace std;
  9.  
  10. const int SZ = 2e5+1, MAX_SIZE = 2e7+1, mod = 1e9 + 7;
  11. vector<bool> visited(SZ, true);
  12. vector<int> primes;
  13.  
  14. void seive(){
  15.     vector<bool> visited(SZ, true);
  16.     visited[0] = visited[1] = false;
  17.     for (int i = 2; i <= SZ; i++) {
  18.         if (visited[i] && (long long)i * i <= SZ) {
  19.             for (int j = i * i; j <= SZ; j += i)
  20.                 visited[j] = false;
  21.         }
  22.     }
  23.  
  24.     for (int i = 2; i<SZ; i++){
  25.         if(visited[i]){
  26.             primes.push_back(i);
  27.         }
  28.     }
  29.  
  30. }
  31.  
  32. void solve() {
  33.     int n;
  34.     int len = primes.size();
  35.    
  36.     while(scanf("%i", &n) != EOF){
  37.  
  38.         if(n == 1){
  39.             printf("1\n");
  40.             continue;
  41.         }
  42.  
  43.         printf("1");
  44.         int j = 0;
  45.         while (primes[j]*primes[j]<=n){
  46.  
  47.             if(n%primes[j] == 0){
  48.                 n /= primes[j];
  49.                 printf(" x %d", primes[j]);
  50.             } else{
  51.                 j++;
  52.             }
  53.  
  54.         }
  55.  
  56.         if(n>1){
  57.             printf(" x %d", n);
  58.         }
  59.  
  60.         printf("\n");
  61.     }
  62. }
  63.  
  64. int CodeTyper()
  65. {
  66.     IOS;
  67.     seive();
  68.     solve();
  69.     Bye;
  70. }
  71.  
  72. /*
  73.     * Think first, then code. - CodeTyper
  74.     ** Think twice, code once. - CodeTyper
  75. */
Advertisement
Add Comment
Please, Sign In to add comment