4.26 每日一题题解
最大公约数和最小公倍数问题
涉及知识点:
- 数学
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\n",ans);
}
return 0;
}

浙公网安备 33010602011771号