Обратное число В этой задаче нужно ответить на 1≤t≤105 запросов. Каждый запрос состоит из двух целых чисел 2≤p≤109 и 0
#include
#include
#include
#define ll long long
using namespace std;
ll modexp(ll x, ll y, ll N)
{
if (y == 0) return 1%N;
ll z = modexp(x, y / 2, N);
if (y % 2 == 0)
return (z*z) % N;
else
return (x*z*z) % N;
}
int main(){
int n;
cin>>n;
vector a(2);
vector b;
for (int i=0;i >a[0]>>a[1];
b.push_back(modexp(a[1],a[0]-2,a[0]));
}
for(int i=0;i cout< }
}
2) !x * !y * z - тоже не проходит вторую
3) !x V !y V x - не проходит первую
4) x V !y V !z - подходит по всем трём строкам из таблицы истинности
для того чтобы понять как это делается нужно подставлять цифры из таблицы истинности в сами выражения и смотреть что в ответе получается.
разберу на примере последнего выражения:
0 V !1 V !1 = 0 V 0 V 0 = 0 - верно 0110 (V это логическое ИЛИ, оно равно 1 когда хотя бы один из элементов равняется 1)
1 V !1 V !1 = 1 V 0 V 0 = 1 - тоже верно согласно таблице
x y z f
1 1 1 1
0 V !0 V !1 = 0 V 1 V 0 = 1 - тоже верно 0011