首页 > 其他分享 >最大公约数

最大公约数

时间:2023-03-10 20:32:58浏览次数:50  
标签:min int 18 最大公约数 公约数 余数


1.什么是公约数?

公约数,亦称“公因数”。 它是一个能同时整除几个整数的数 。 如果一个整数同时是几个整数的 约数 ,称这个整数为它们的“公约数”。

2.最大公约数

公约数中最大的称为最大公约数。 对任意的若干个正整数,1总是它们的公因数。 公约数与公倍数相反,就是既是A的约数同时也是B的约数的数,12和15的公约数有1,3,最大公约数就是3。 再举个例子,30和40,它们的公约数有1,2,5,10,最大公约数是10

3.最大公约数和最小公倍数的关系:

两个数的乘积/最大公约数=最小公倍数

4.解题引导

如18和6,我们可以知道两个数的最大公约数一定小于等于其中最小的那个数,那么要想实现最大公约数,必须先找出两个数中的最小值 然后再从6或比6小的数中寻找最小公约数

最大公约数_#include

5.代码展示:

代码如下(示例):

#include<stdio.h>
int main() {

int m = 0;
int n = 0;
scanf("%d %d", &m, &n);
int min = (m < n ? m : n);
while (1)
{
if (m % min == 0 && n % min == 0)
{
printf("%d", min);
break;
}
min--;
}
return 0;
}

当然方法不只这一种,这种方法效率比较低

6.辗转相除法

介绍如图:

最大公约数_最大公约数_02

如图,用24除18取余数6 用18除6 取余为0 6就是这两个数的最大公约数 如上图如果我们把24看作m,把18看作n,余数如果不是0,就将n的值赋给m,余数的值赋给n 余数如果是0,n就是最大公约数

7.代码演示:

#include<stdio.h>//最大公约数
int main() {

int m = 0;
int n = 0;
int r = 0;
scanf("%d %d", &m, &n);
while (r = m % n)
{
m = n;
n = r;
}
printf("%d", n);
return 0;
}

总结

这里所涉及的内容都比较基础,如果以上代码中有些语法不知道,说明基础太过薄弱可以阅读我的系列文章​​【C】 C语言入门​​当然只要有了明确的思路,这种代码还是非常好写的。

标签:min,int,18,最大公约数,公约数,余数
From: https://blog.51cto.com/u_15992140/6113506

相关文章

  • C语言:最大公约数和最小公倍数
    #include<stdio.h>//求任意两个数的最小公倍数main(){inta,b,i;scanf("%d%d",&a,&b);for(i=a;i<=a*b;i++)if(i%a==0&&i%b==0){......
  • C语言最大公约数
    ////main.c//test_c1////CreatedbyZXTIGERon2023/3/4.//#include<stdio.h>intmain(intargc,constchar*argv[]){//1.求最大公......
  • 关于最大公约数-最大公因数的原理与表示方法
    在数学中,有两个名词经常会被听到,最大公因数,最大公约数刚开始还以为他们有什么区别呢,后来查询了一下,其实都是一个意思,只是叫法不一样接下来说一下最大公因数的定义 理......
  • Rust 最大公约数
    计算两个非负整数p和q的最大公约数:若q是0,则最大公约数为p。否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数。fngcd(p:u32,q:u32)......
  • c语言:辗转相除求最大公约数 函数
    #include<stdio.h>//求最大公约数:辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。//319377:319%377=319377%319=58319%58=2958%29=0......
  • C语言:更损相减法求最大公约数 函数应用
    #include<stdio.h>//<<九章算术>>更相减损法:可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。//以等数约之。///第......
  • [51Nod 1237] 最大公约数之和 (杜教筛+莫比乌斯反演)
    题目描述求题目分析乍一看十分像裸莫比乌斯反演,然而的范围让人望而却步于是先变化一下式子枚举令k=Td则此时可以整除分块优化,每次算出相等的上下界后用莫比乌斯反演计......
  • ACwing 区间最大公约数题解 线段树(附证明)
    算进区间最大公因数单点线段树 https://www.acwing.com/problem/content/247/题目:给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:Clrd,表......
  • C语言:求最大公约数和最小公倍数
    #include<stdio.h>//任意输入两个整数,输出这两个数的最大公约数和最小公倍数main(){inta,b,c,gys,gbs;scanf("%d%d",&a,&b);for(c=a;c>=1;c--)......
  • 求最大公约数伪代码
    1.上网查找什么是求两个数的最大公约数的欧几里得算法(辗转相除法),提交算法说明和网上链接。2.参考教材,用伪代码(英语或汉语)实现欧几里得算法(辗转相除法),提交伪代码。3.选择......