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;
}
记得关注+点赞哦
浙公网安备 33010602011771号