最大公约数和最小公倍数问题

问题 F: 最大公约数和最小公倍数问题

时间限制: 2 Sec  内存限制: 128 MB
提交: 513  解决: 50
[提交][状态][讨论版]

题目描述

输入2个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数。

条件:

1. P,Q是正整数;

2. 要求P,Q以x0为最大公约数,以y0为最小公倍数。

试求:

满足条件的所有可能的两个正整数的个数。

输入

每个测试文件包含不超过5组测试数据,每组两个正整数x0和y0(2<=x0<100000,2<=y0<=1000000)。

输出

对于每组输入数据,输出满足条件的所有可能的两个正整数的个数。

下面是对样例数据的说明:

输入3 60

此时的P Q分别为:

    3     60


    15   12


    12   15


    60   3

所以,满足条件的所有可能的两个正整数的个数共4种。

样例输入

3 60

样例输出

  4

Step1:__gcd(x,y)函数是存在的。


 

 

Step2:在知道最大公约数和最小公倍数的情况下满足这两个条件的数他们的乘积等于最大公约数和最小公倍数的乘积,
举个列子如样例最大公约数x0=3,最小公倍数y0=60.满足这两个条件的数有(3,60),(15,12),(12,15),(60,3)。
关于数论的一些定理:
两个数的最小公倍数等于它们的乘积除以它们的最大公约数。
两两互素的数的最小公倍数等于它们的乘积。
Step3:

 

Step4:other methods labeling:c,双重循环。