Advertisement
Guest User

B

a guest
Feb 27th, 2020
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define pb push_back
  6.  
  7. int main(){
  8.  
  9.     int a, b, c, d, f, i;
  10.     map <int, int> used1, used2;
  11.     cin >> a >> b >> c >> d >> f;
  12.     int tmpa = a, tmpc = c;
  13.     for(i = 2; i*i <= tmpa; i++){
  14.         while(tmpa%i == 0){
  15.             tmpa /= i;
  16.             used1[i] += b;
  17.         }
  18.     }
  19.     if(tmpa > 1){
  20.         used1[tmpa] += b;
  21.     }
  22.  
  23.     for(i = 2; i*i <= tmpc; i++){
  24.         while(tmpc%i == 0){
  25.             tmpc /= i;
  26.             used2[i] += d;
  27.         }
  28.     }
  29.     if(tmpc > 1){
  30.         used2[tmpc] += d;
  31.     }
  32.  
  33.     vector <int> v;
  34.     set <int> st;
  35.     tmpa = a;
  36.  
  37.     for(i = 2; i*i <= tmpa; i++){
  38.         while(tmpa%i == 0){
  39.             tmpa /= i;
  40.             st.insert(i);
  41.         }
  42.     }
  43.     if(tmpa > 1){
  44.         st.insert(tmpa);
  45.     }
  46.  
  47.     for(set <int> :: iterator it = st.begin(); it != st.end(); it++){
  48.         int to = *it;
  49.         for(i = 0; i < min(used1[to], used2[to]); i++){
  50.             v.pb(to);
  51.         }
  52.     }
  53.  
  54.     int res = 1;
  55.     for(i = 0; i < v.size(); i++){
  56.         int to = v[i];
  57.         res *= to;
  58.         res %= f;
  59.     }
  60.     cout << res;
  61.  
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement