Pagini recente » Cod sursa (job #1360778) | Cod sursa (job #1949860) | Cod sursa (job #1913741) | Cod sursa (job #636229) | Cod sursa (job #2607316)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream in("pinex.in");
ofstream out("pinex.out");
int main() {
int t;
in>>t;
while(t--){
ll a, b;
in>>a>>b;
vector<ll>v;
for(ll i=2; i*i<=b; ++i){
if(b%i==0){
v.push_back(i);
while(b%i==0){
b/=i;
}
}
}
if(b>1){
v.push_back(b);
}
ll s=0;
for(ll i=1; i<(1LL<<((v.size())); i++){
ll nr=0, x=1;
for(int j=0; j<v.size(); ++j){
if(i&(1LL<<j)){
nr++;
x*=v[j];
}
}
s+=(nr%2==1?1:-1)*(a/x);
}
out<<a-s<<"\n";
}
return 0;
}