• 8.最大公约数和最小公倍数问题


    题目描述 Description

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

    条件 1.P,Q是正整数

    2.要求P,Qx0为最大公约数,y0为最小公倍数.

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

    输入描述 Input Description

    二个正整数x0,y0

    输出描述 Output Description

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

    样例输入 Sample Input

    3 60

    样例输出 Sample Output

    4

    源代码:

    #include

    using namespace std;

    #include

    #include

    int x,y,sum=0;

    int gys(int a,int b)

    {

           if(a

           swap(a,b);

           int sh=a-b;

           while(sh!=0)

           {

                  a=b;

                  b=sh;

                  if(a

                  swap(a,b);

                  sh=a-b;

           }

           return b;

    }

    int gbs(int a,int b)

    {

           return a*b/gys(a,b);

    }

    int main()

    {

           cin>>x>>y;

           if(x>y)

           swap(x,y);

           if(y%x!=0)

           {

                  printf("0 ");

                  return 0;

           }

           else{

                  int v=x*y;

                  int s=sqrt(v);

                  for(int i=x;i<=s;i+=x)

                  {

                         if(gys(i,v/i)==x&&gbs(i,v/i)==y)

                         sum++;

                  }

           }

           printf("%d",sum*2);//*2输出就是了

           return 0;

    }

  • 相关阅读:
    C#------对SQLServer进行简单的增,删,改,查
    WinForm------点击Control弹出MessageBox
    WinForm------窗体初始化位置的显示
    WinForm------GridControl的部分属性介绍
    C#------编码规范
    vs------安装window net.framework 出现严重错误解决方法
    jsp------实现MD5加密
    jquery------捕获异常处理
    jquery------显示加载的js时出现中文乱码解决方法
    sublime3 常用功能总结
  • 原文地址:https://www.cnblogs.com/csgc0131123/p/5290567.html
Copyright © 2020-2023  润新知