Pagini recente » Cod sursa (job #2981428) | Cod sursa (job #1314204) | Cod sursa (job #1550688) | Cod sursa (job #2718877) | Cod sursa (job #597300)
Cod sursa(job #597300)
#include <fstream>
using namespace std;
const int N=16;
long long d[N],a,b,rez;
ifstream in("pinex.in");
ofstream out("pinex.out");
void bkt(int p,int val)
{
if (p==d[0]+1)
{
rez+=a/val;
return;
}
bkt(p+1,val);
bkt(p+1,val*d[p]);
}
int main()
{
long long t,i;
in>>t;
while (t--)
{
in>>a>>b;
rez=0;
d[0]=0;
for (i=2;i*i<=b;i++)
if (b%i==0)
{
d[++d[0]]=-i;
while (b%i==0)
b/=i;
}
if (b!=1)
d[++d[0]]=-b;
bkt(1,1);
out<<rez<<"\n";
}
return 0;
}