Imran_Mohammed

Modular Arithmetic

Mar 10th, 2021
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.87 KB | None | 0 0
  1. //In The Name Of Allah
  2. //Sum Of Number of Divisor :
  3.  
  4. #include<bits/stdc++.h>
  5. using namespace std;
  6.  
  7. #define optimize() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  8. #define endl '\n'
  9. #define MOD 1000000007
  10. typedef long long ll;
  11.  
  12. inline void normal(ll a) { a %= MOD; (a < 0) && (a += MOD); }
  13. inline ll modMul(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a*b)%MOD; }
  14. inline ll modAdd(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a+b)%MOD; }
  15. inline ll modSub(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); a -= b; normal(a); return a; }
  16. inline ll modPow(ll b, ll p) { ll r = 1; while(p) { if(p&1) r = modMul(r, b); b = modMul(b, b); p >>= 1; } return r; }
  17. inline ll modInverse(ll a) { return modPow(a, MOD-2); }
  18. inline ll modDiv(ll a, ll b) { return modMul(a, modInverse(b)); }
  19.  
  20. //main function : (for Multiplication)
  21. int main()
  22. {
  23.     optimize()
  24.  
  25.     int n;
  26.     cin >> n;
  27.  
  28.     long long ans = 1;
  29.     for(int i=1; i<=n; i++){
  30.         ans *= (i%MOD);
  31.         ans %= MOD;
  32.     }
  33.  
  34.     cout << ans << endl;
  35.  
  36.     return 0;
  37. }
  38.  
  39. //main function : (For Addition)
  40. int main()
  41. {
  42.     optimize()
  43.  
  44.     long long n;
  45.     cin >> n;
  46.  
  47.     long long ans = 0;
  48.     for(long long i=1; i<=n; i++){
  49.         ans += (i%MOD);
  50.         ans %= MOD;
  51.     }
  52.  
  53.     cout << ans << endl;
  54.  
  55.        return 0;
  56. }
  57.  
  58.     //main function : (For Subtraction)
  59. int main()
  60. {
  61.     optimize()
  62.  
  63.     long long a,b,r;
  64.     cin >> a >> b;
  65.  
  66.     long long ans = 0;
  67.  
  68.     r = (a%MOD) - (b%MOD);
  69.     if(r < 0)r += MOD;
  70.     ans = r%MOD;
  71.  
  72.     cout << ans << endl;
  73.     cout << modSub(a,b) << endl;
  74.     cout << endl;
  75.  
  76.     return 0;
  77. }
  78.  
  79. //Main Function : (For Power without function)
  80. int main()
  81. {
  82.     optimize()
  83.  
  84.     long long b,p,m;
  85.     cin >> b >> p >> m;
  86.  
  87.     long long ans = 1;
  88.  
  89.     while( p>0 ){
  90.         if(p%2 == 1){
  91.             ans *= b;
  92.             ans %= m;
  93.         }
  94.  
  95.         p = p/2;
  96.         b *= b;
  97.         b %= m;
  98.     }
  99.  
  100.     cout << ans << endl;
  101.  
  102.  
  103.     return 0;
  104. }
  105.  
  106. // Power with function :Complexity log2 (power)
  107. long long modpow(long long b , long long p){
  108.     long long ret = 1;
  109.     while( p>0 ){
  110.         if( p%2 == 1){
  111.             ret *= b;
  112.             ret %= MOD;
  113.         }
  114.         p /= 2;
  115.         b *= b;
  116.         b %= MOD;
  117.     }
  118.  
  119.     return ret;
  120. }
  121.  
  122. int main()
  123. {
  124.     optimize();
  125.     long long b,p;
  126.     cin >> b >> p;
  127.  
  128.     cout << modpow(b,p) << endl;
  129.  
  130.     return 0;
  131. }
  132.  
  133. // Division :Complexity log2 (MOD)
  134. long long modpow(long long b , long long p){
  135.     long long ret = 0;
  136.     while( p>0 ){
  137.         if( p%2 == 1){
  138.             ret *= b;
  139.             ret %= MOD;
  140.         }
  141.         p /= 2;
  142.         b *= b;
  143.         b %= MOD;
  144.     }
  145.  
  146.     return ret;
  147. }
  148.  
  149. int main()
  150. {
  151.     optimize();
  152.     long long b,p;
  153.     cin >> b >> p;
  154.  
  155.     cout << ( (b%MOD) * modPow(p,MOD-2) ) %MOD<< endl;
  156.  
  157.  
  158.     return 0;
  159. }
  160.  
Advertisement
Add Comment
Please, Sign In to add comment