zoukankan      html  css  js  c++  java
  • 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;

    }

  • 相关阅读:
    System.IO.StreamWriter
    C# XML
    C# 泛型
    ACM将一个十进制的数转换为一个十六进制的数输出
    ACM打扫花园问题
    ACM用N个正方体来建造金字塔问可以建造多少层
    输入一串数字找出其中缺少的最小的两个数
    高效算法——B 抄书 copying books,uva714
    暴力求解——POJ 3134Power Calculus
    暴力求解——打表,暴力
  • 原文地址:https://www.cnblogs.com/c1299401227/p/5370815.html
Copyright © 2011-2022 走看看