两个正整数的最大公约数是6,最小公倍数是90,满足条件的两个正整数组成的大数在前的数对共有多少对?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个正整数的最大公约数是6,最小公倍数是90,满足条件的两个正整数组成的大数在前的数对共有多少对?相关的知识,希望对你有一定的参考价值。

两个正整数的最大公约数是6,最小公倍数是90,满足条件的两个正整数组成的大数在前的数对共有多少对?请问大数在前的数的对什么意思,请说明,这题怎么做

90÷6=15
15=15×1=5×3
则满足条件的有:15×6=90,1×6=6 90和6 数对(90,6)
6×5=30,6×3=18 30和18 数对(30,18)

大数在前的数对,是指数对中,第一个数比第二个数大
参考技术A 90÷6=15=1*15=3*5
所以

90,6;
75,45.
共两对!
否则
四对!(请问大数在前的数的对什么意思,还有:6,90;45,75)

洛谷P1029 最大公约数和最小公倍数问题

题目描述

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

条件:

1.P,Q是正整数

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

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

输入输出格式

输入格式:

二个正整数x0,y0

输出格式:

一个数,表示求出满足条件的P,Q的个数

输入输出样例

输入样例#1:
3 60
输出样例#1:
4

说明

P,Q有4种

3 60 15 12 12 15 60 3

分析:暴力可以过,但是也可以用数学方法,利用唯一分解定律,最大公约数的次数都是取min,最小公倍数的次数都是取max,如果次数不同,证明这一位的贡献值是2,两个数一个取max,一个取min,就好了,如果次数相等,就没有贡献。在处理前先判断一下最大公约数能不能整除最小公倍数.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cmath>

using namespace std;

int x,y,cnt;

int qpow(int a,int b)
{
    int ans = 1;
    while (b)
    {
        if (b & 1)
        ans *= a;
        a *= a;
        b >>= 1;
    }
    return ans;
}

int main()
{
    scanf("%d%d",&x,&y);
    if (y % x != 0)
    printf("0\n");
    else
    {
    int k = y / x;
    for (int i = 2; i <= k; i++)
    {
        if (k % i == 0)
        {
            while (k % i == 0)
            k /= i;
            cnt++;
        }
    }
    printf("%d\n",qpow(2,cnt));
}
    
    return 0;
}

 

以上是关于两个正整数的最大公约数是6,最小公倍数是90,满足条件的两个正整数组成的大数在前的数对共有多少对?的主要内容,如果未能解决你的问题,请参考以下文章

第6题输入两个正整数 m 和 n,求其最大公约数和最小公倍数

7.1集训模拟赛5(......)

(洛谷1029 最大公约数和最小公倍数问题)

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

洛谷P1029 最大公约数和最小公倍数问题

水题-洛谷P1209-最大公约数与最小公倍数问题