Pagini recente » Cod sursa (job #1008661) | Cod sursa (job #2419794) | Cod sursa (job #1303448) | Cod sursa (job #548302) | Cod sursa (job #2313768)
#include<fstream>
#define N 1000001
using namespace std;
long long v[N],p[N],a[101],i,j,tst,x,y,s,pr,d,k,t,m,sol,w;
int main()
{
ifstream f("pinex.in");
ofstream g("pinex.out");
for(m=N-1,i=2;i<=m;i++)
if(!v[i])
for(p[++d]=i,j=i*i;j<=m;j+=i)
v[j]=1;
for(f>>tst,w=1;w<=tst;w++)
{
for(f>>x>>y,sol=x,k=0,i=1;i*i<=y;i++)
if(y%p[i]==0)
for(a[++k]=p[i];y%p[i]==0;y/=p[i]);
if(y>1)
a[++k]=y;
for(t=1<<k,i=1;i<t;i++)
{
for(pr=1,s=j=0;j<k;j++)
if((i&(1<<j))>0)
s++,pr*=a[j+1];
sol+=((s%2==0?1:-1)*x/pr);
}
g<<sol<<"\n";
}
}