View Code of Problem 102

#include<stdio.h>
#include<math.h>


bool zhi(long long x)
{
     for (long long i=2;i<=sqrt(x);++i)
         if (x%i==0) return 0;
     return 1;
}

int main()
{
	long long x,y;
	while(scanf("%d %d",&x,&y)!=EOF){
	if (y%x!=0)
    {
               printf("0\n");
               continue;
    }
    x=y/x; y=0;
    for (long long i=2;i<=x;++i)
        if (zhi(i))
        {
                   if (x%i==0) ++y;
                   while (x%i==0) x/=i;
        }
    printf("%d\n",(int)pow(2,y));
	}
    
    return 0;
}

Double click to view unformatted code.


Back to problem 102