#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.