Pagini recente » Cod sursa (job #1310993) | Cod sursa (job #2447060) | Cod sursa (job #2037449) | Cod sursa (job #3170235) | Cod sursa (job #2488536)
#include <fstream>
using namespace std;
long long a,b,i,j,t,p,s,nr,afis,v[1000005],m,r,q,w[1000005];
bool e[1000005],u[1000005],OK;
const long long c=1000000;
int main()
{
ifstream f("pinex.in");
ofstream g("pinex.out");
for(i=2;i*i<=c;i++)
if(!e[i])
for(j=i*i;j<=c;j=j+i)
e[j]=1;
for(i=2;i<=c;i++)
if(!e[i])
w[++q]=i;
f>>m;
for(r=1;r<=m;r++)
{
f>>a>>b;
for(i=1;w[i]*w[i]<=b;i++)
if(b%w[i]==0)
v[++t]=w[i];
for(i=1;i<=t;i++)
while(b%v[i]==0)
b/=v[i];
if(b!=1)
v[++t]=b;
while(!OK) ///aprindem si stingem becuri
{
OK=1; p=1; s=1; nr=0;
while(p<=t)
{
if(OK)
{
if(u[p])
u[p]=0;
else
{
u[p]=1;
OK=0;
s*=v[p];
nr++;
}
}
else
{
if(u[p])
{
s*=v[p];
nr++;
}
}
p++;
}
if(nr%2)
afis-=a/s;
else
afis+=a/s;
}
g<<afis<<'\n';
for(i=1;i<=t;i++)
u[i]=0;
t=0;OK=0;afis=0;
}
return 0;
}