মঙ্গলবার, ৩০ মে, ২০১৭

BIGMOD if base power and mod<=10^18

#include <bits/stdc++.h>
using namespace std;

template <typename T>
T mmul(T a, T b, T m)
{
    a %= m;
    T result = 0;
    while (b)
    {
        if (b % 2) result = (result + a) % m;
        a = (a + a) % m;
        b /= 2;
    }
    return result;
}

template <typename T>
T mpow(T a, T b, T m)
{
    a %= m;
    T result = 1;
    while (b)
    {
        if (b % 2) result = mmul(result, a, m);
        a = mmul(a, a, m);
        b /= 2;
    }
    return result;
}


int main()
{
    unsigned long long ts,cs=1;
    cin>>ts;
    while(ts--)
    {
        unsigned long long a,b1,c;
        cin>>a>>b1>>c;
        printf("Case %llu: ",cs++);
        cout<<mpow(a,b1,c)<<endl;
    }
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...