#include<stdio.h> int maxgys(int x,int y) { int z; while(y!=0) { z=x%y; x=y; y=z; } return x; } int main() { int x,y; while(scanf("%d %d",&x,&y)!=EOF) { if(x>y) { int t=y; y=x; x=t; } int i,j; int cnt=0; for(i=x;i<=y;i++) { if(y%i==0) { for(j=y;j>=x;j--) { if(maxgys(j,i)==x&&y%j==0)//x为最大公约数且y为公倍数 { if((i*j)/x==y)//y为最小公倍数 { cnt++; break; } } } } } printf("%d\n",cnt); } } |
Double click to view unformatted code.