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

来源:互联网 发布:淘宝男士内裤哪个好 编辑:程序博客网 时间:2024/05/01 10:12

题目:

题目描述

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

条件:

1.P,Q是正整数

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

试求:满足条件的所有可能的两个正整数的个数.

输入输出格式

输入格式:
二个正整数x0,y0

输出格式:
一个数,表示求出满足条件的P,Q的个数

作者思路:用辗转相除的方法求最大公因数,注意剪枝。

代码:

var x1,y1,i,j,ans:longint;function x(n,m:longint):longint;begin  if n mod m<>0 then x:=x(m,n mod m)                else x:=m;end;begin  read(x1,y1);  ans:=0;  for i:=x1 to y1 do    if i mod x1=0 then//剪枝      for j:=x1 to y1 do        if j mod x1=0 then//剪枝          if (x(i,j)=x1)and(i*j div x1=y1) then inc(ans);  write(ans);end.
1 1