• 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;

    }

  • 相关阅读:
    Handlebars模板引擎简单使用
    SpringMVC学习笔记001-服务器端获取JSON字符串并解析
    EL表达式的使用
    SpringMVC学习笔记001
    ExtJS学习之路碎碎念
    Microsoft Word 使用技巧总结
    驼峰命名法
    视图生命周期
    git命令
    git的使用1[转]
  • 原文地址:https://www.cnblogs.com/csgc0131123/p/5290567.html
Copyright © 2020-2023  润新知