求公因数的方法(C/C++)

简介: 求公因数的方法(C/C++)

比较好用的有这么几种:

1、辗转相除法

C语言:

#include <stdio.h>
int main() {
  int a, b, r;//两数a,b
  scanf("%d%d", &a, &b);
  r = a % b;
  while (r != 0) {
    a = b;
    b = r;
    r = a % b;
  }
  printf("%d", b);//b即为公因数
}

C++:

#include <iostream>
using namespace std;
int main() {
  int a, b, r;//两数a,b
  cin >> a >> b;
  r = a % b;
  while (r != 0) {
    a = b;
    b = r;
    r = a % b;
  }
  cout << b; //b即为公因数
}


2.辗转相减法

原理:

       m不等于n,循环以下条件:

       1.若m>n,使m=m-n;

       2.若m

       最后m与n相同,函数返回m或n即可

C语言:

#include <stdio.h>
int gongyueshu(int m, int n) {//求公因数函数
  while (m != n) {
    if (m > n)
      m = m - n;
    else
      n = n - m;
  }
  return n;
}
int main() {
  int x, y;
  scanf("%d%d", &x, &y);
  printf("%d", gongyueshu(x, y));
}

C++:

#include <iostream>
using namespace std;
int gongyueshu(int m, int n) {//求公因数函数
  while (m != n) {
    if (m > n)
      m = m - n;
    else
      n = n - m;
  }
  return n;
}
int main() {
  int x, y;
  cin >> x >> y;
  cout << gongyueshu(x, y);
}


3.C++中的特殊函数__gcd()


//__gcd()函数(注意有两个下划线_)
#include <iostream>
#include <algorithm>//要用函数所需要的头文件
using namespace std;
int main() {
  int x = 11, y = 33;
  cout << __gcd(x, y);
}

b36b1665d3094f789281c32de7b92c40 (1).png


相关文章
|
5月前
|
机器学习/深度学习 自然语言处理 API
10-22|处理脏话其他方法
10-22|处理脏话其他方法
|
9月前
|
自然语言处理 算法 数据挖掘
长绳方法
进一步提高语言模型(LLM)的性能,通过扩展其上下文窗口至超过200万个标记,从而实现更深入的语境理解。本文将对这一成果进行深入解读,探讨其意义和潜在应用。
61 2
|
移动开发 JavaScript 前端开发
|
C# 编译器 索引
|
存储 JavaScript 前端开发
JavaScript继承的几种方法
JavaScript继承的几种方法
152 0
JavaScript继承的几种方法
|
数据库 Go
统计数据库大小的方法
原文:统计数据库大小的方法     一台服务器上所有数据库(也可能是部分数据库)的大小是我们经常需要了解的,它不仅能让我们知道目前数据库使用磁盘的比例, 而且定期搜集这些信息,还能了解数据库一段时间的数据增量,更为常用的是在做数据迁移和升级时,方便规划新服务器磁盘容量。
1336 0
|
安全 Java
浅析ThreadList的runcheckpoint方法
浅析ThreadList的runcheckpoint方法
130 0
|
9月前
|
Java 编译器 C语言
v-for的四种方法
v-for的四种使用方法分别是: 1.使用v-for循环一个简单的数组 2.使用v-for循环一个复杂的数组 3.使用v-for循环对象 4.v-for循环一个迭代的数字

热门文章

最新文章