求两个数的最大公约数(C++)
Posted STY_DracoMalfoy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求两个数的最大公约数(C++)相关的知识,希望对你有一定的参考价值。
求两个数的最大公约数:
方法1:穷举
int gcd (int a,int b)
int ans;
for (int i = 1;i<=min(a,b);i++)
if (a%i==0 && b%i==0)
ans = i;
return ans;
这种方法容易时间超限,小数据可以使用,大数据不建议。
方法2:辗转相除法
int gcd (int a,int b)
int r;
while (b)
r = a%b;
a = b;
b = r;
return a;
这种方法适合大数据,不会时间超限。
方法3:直接调用自带函数__gcd(注意是两个下划线)
#include <bits/stdc++.h>//万能库
using namespace std;
int main()
int a,b;
cin>>a>>b;
cout<<__gcd(a,b);
return 0;
以上是关于求两个数的最大公约数(C++)的主要内容,如果未能解决你的问题,请参考以下文章