1300: [NOIP2001]最小公倍数和最大公约数问题 T2

题目描述

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

条件:1.P、Q是正整数

2.要求P、Q以xO为最大公约数,以yO为最小公倍数。

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

输入

两个正整数

输出

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

样例输入

3 60

样例输出

4

提示

说明:(不用输出)此时的 P Q 分别为:

3 60

15 12

12 15

60 3

所以,满足条件的所有可能的两个正整数的个数共4种

代码:

#include<bits/stdc++.h>
using namespace std;
int n(int a,int b)
{
    for(int i=a;i>=1;i--)
        if(a%i==0&&b%i==0)
            return i;
}
int n_1(int a,int b)
{
    for(int i=a;i<=a*b;i++)
        if(i%a==0&&i%b==0)
            return i;
}
int main()
{
    int a,b,s=0;
    cin>>a>>b;
    for(int i=a;i<=b;i++)
    {
        if(i%a!=0||b%i!=0)
            continue;
        for(int k=a;k<=b;k++)
        {
            if(k%a!=0||b%k!=0)
                continue;
            if(n(i,k)==a&&n_1(i,k)==b)
            {
                s++;
            }
                
        }
    }
    cout<<s;
     return 0;
}

记得关注+点赞哦

posted @ 2023-02-26 19:55  我爱OJ  阅读(17)  评论(0)    收藏  举报  来源