最大公约数和最小公倍数问题
涉及知识点:
- 数学
solution:
- (所有的(a,b),都必须满足:)
- (①gcd(a,b)=x)
- (②lcm(a,b) = a*b/gcd(a,b) = y)‘
- (①②化简得到a*b = x*y)
- (做法就是枚举a,则b就等于frac{x*y}{a})
- (接下来就判断a,b是否符合条件即可)
std:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
ll x, y;
while(~scanf("%lld%lld",&x,&y)){
int ans = 0;
for(ll i = 1;i<=max(x,y);i++){
if(x*y%i == 0 &&__gcd(i , x*y/i) == x)
ans++;
}
printf("%d
",ans);
}
return 0;
}