Pagini recente » Cod sursa (job #2858007) | Cod sursa (job #2445304) | Cod sursa (job #2545431) | Cod sursa (job #1982165) | Cod sursa (job #73252)
Cod sursa(job #73252)
#include<stdio.h>
#include<math.h>
long long gs;
void gcd(int a, int b){
if (a==0)
gs = b;
else
if (b==0)
gs = a;
else
if (a>b)
gcd(a%b, b);
else
gcd(b%a, a);
}
int main(void)
{
freopen("divmul.in","r",stdin);
freopen("divmul.out","w",stdout);
int t, nrt, x, y;
long long p, i, a, nrp, sqr;
scanf("%d", &t);
for (nrt=1; nrt<=t; nrt++){
scanf("%d%d", &x, &y);
p = x*y;
sqr = sqrt(p);
nrp = 0;
for (i=x; i<=sqr; i+=x)
if (p%i==0){
a = p/i;
gcd(a,i);
if (gs==x)
if (i!=a)
nrp+=2;
else
nrp++;
}
printf("%lld\n", nrp);
}
fclose(stdin);
fclose(stdout);
return 0;
}