G05 最大公约数 欧几里得算法

 视频链接:https://www.bilibili.com/video/BV1XG4y1q7e7

Luogu P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

typedef long long LL;
LL x,y,ans;

LL gcd(LL a, LL b){
  return b==0 ? a : gcd(b,a%b);
}
int main(){
    cin>>x>>y;
    LL t = x*y;
    for(LL i=1; i*i<=t; i++)
        if(t%i==0 && gcd(i,t/i)==x) 
          ans += 2;
    if(x==y) ans--;      
    cout << ans;
    return 0;
}

 

posted @ 2022-09-11 16:22  董晓  阅读(523)  评论(0编辑  收藏  举报