Pagini recente » Cod sursa (job #169281) | Cod sursa (job #1758399) | Cod sursa (job #1415399) | Cod sursa (job #388156) | Cod sursa (job #2351545)
#include<bits/stdc++.h>
using namespace std;
int m,p,pr;
int a[500];
int solve(int A, int b) {
int p=2; int rs=0; pr=0;
while (b>1 && p*p<=b) {
int k=0;
while (b%p==0) {
++k; b/=p;
}
if (k) a[++pr]=p; ++p;
}
if (b>2) a[++pr]=b;
for (int i=1; i<(1<<pr); ++i) {
int k=0; int nr=1;
for (int j=0; (1<<j)<=i; ++j) {
if (i & (1<<j)) {
++k; nr*=a[j+1];
}
}
rs+=A/nr*(k%2?1:-1);
}
return rs;
}
int main() {
ifstream cin("pinex.in");
ofstream cout("pinex.out");
cin>>m;
while (m--) {
int a,b; cin>>a>>b;
cout<<a-solve(a,b)<<'\n';
}
return 0;
}