| 比赛 | 
    板子大赛 | 
    评测结果 | 
    AAAAAAAAAA | 
    | 题目名称 | 
    最大公约数和最小公倍数问题 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    李奇文 | 
    运行时间 | 
    0.037 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    3.30 MiB  | 
    | 提交时间 | 
    2025-01-22 15:56:10 | 
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int m,n,ans,flag;
ll gcd(ll x,ll y){
    if(y==0){
		return x;
	}
    return gcd(y,x%y);
}
int main(){
	freopen("gcdpro.in","r",stdin);
	freopen("gcdpro.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=sqrt(1ll*m*n);i++){
        if((1ll*n*m)%i==0&&gcd(i,(1ll*n*m)/i)==n){
            ans++;
            if(1ll*i*i==1ll*n*m)  flag=1;
        }
    }
    cout<<ans*2-flag<<endl;
    return 0;
}