Cod sursa(job #2469427)

Utilizator NopeCarp Rafael Nope Data 7 octombrie 2019 10:38:43
Problema A+B Scor 0
Compilator cpp-64 Status done
Runda Lista lui wefgef Marime 0.57 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("gcd.in");
ofstream fout("gcd.out");

long long putere(long long a , long long n , long long MOD)
{
    long long p = 1;
    while (n > 0)
    {
        if (n % 2 == 1) p = p * a % MOD;
        n /= 2;
        a = a * a % MOD;
    }
    return p;
}

int T , n , m , p;

int main()
{
    fin >> T;
    while(T--)
    {
        fin >> n >> m >> p;
        int n_s = putere(2 , n , p) - 1;
        int m_s = putere(2 , m , p) - 1;
        fout << __gcd(n_s , m_s) % p << "\n";
    }
    return 0;
}