辗转相除法C语言

#include <stdlib.h>
#include <stdio.h>
 int main()
{
    int b,c,y;
    system("color 0A");
    printf("输入被除数和除数:");
    scanf("%d%d",&b,&c);
    y=b%c;
    if(y==0)
        printf("最大公约数是:%d\n",c);
    else
    {
        do
        {
            b=c;
            c=y;
            y=b%c;
        }
        while(y!=0);
        printf("最大公约数是:%d\n",c);
    }
    return 0;
}

辗转相除法C语言,布布扣,bubuko.com

时间: 2024-10-08 10:45:06

辗转相除法C语言的相关文章

C语言求两个整数的最大公约数

------------------------------------------------------------------------------------------------------ 最大公约数(又叫最大公因数):指两个或者多个整数共有约数中最大的一个.求最大公约数有多种方法,常见的有质因数分解法.短除法.辗转相除法.更相减损法.在这里本人建议使用后两种方法实现. -------------------------------------------------------

【C语言】最大公约数(更相减损法)和(辗转相除法)

#include<stdio.h> #include <math.h> /* 编写一个函数,传入a,b两个int类型的变量,返回两个值的最大公约数. 例如:输入传入(0 , 5)函数返回5,传入(10 , 9)函数返回1,传入(12 , 4)函数返回4 */ //更相减损法 int fuc(int m,int n) { int i=0,temp,x; while(m%2==0 && n%2==0) //判断m和n能被多少个2整除 { m/=2; n/=2; i+=1

C语言辗转相除法求2个数的最小公约数

辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例:求 15750 与27216的最大公约数. 解: ∵27216=15750×1+11466 ∴(15750,27216)=(15750,11466) ∵15750=11466×1+4284 ∴(15750,11466)=(11466,4284) ∵11466=4284×2+2898 ∴(11466

c语言:辗转相除法求最大公约数、最小公倍数

辗转相除法,又称欧几里得算法.两个正整数a和b(a>b),它们的最大公约数等于余数c和较小的数b之间的最大公约数.最小公倍数=两数之积/最大公约数 #include <stdio.h>int get1(int a, int b){ if (a < b) { int c = a; a = b; b = c; } while (a%b != 0) { b = a%b; a = b; } return b;}int get2(int a,int b){ return a*b / get1

【c语言】求两个数m和n的最大公约数(辗转相除法)

// 求两个数m和n的最大公约数(辗转相除法) #include <stdio.h> int yue( int x, int y ) { int temp; int tem; // 保证分母不为0 if( y == 0 ) { x = temp; temp = y; y = x; } // 辗转相除法 while( tem ) { tem = x % y; x = y; y = tem; } return x; } int main() { int a,b; printf("请输入要

C语言复习---获取最大公约数(辗转相除法和更相减损法)

源自:百度百科 辗转相除法 辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法. 例如,求(319,377): ∵ 319÷377=0(余319) ∴(319,377)=(377,319): ∵ 377÷319=1(余58) ∴(377,319)=(319,58): ∵ 319÷58=5(余29) ∴ (319,58)=(58,29): ∵ 58÷29=2(余0) ∴ (58,29)= 29: ∴ (319,377)=29. 用辗转相除法求几个数的最大公约数,可以先求出

c语言学习之 辗转相除法求最大公约数

1. 如果b等于0,则计算结束,最大公约数是a, 2. 否则,计算a除以b的余数,让a等于b,让b等于那个余数, 3.回到第一步. 代码实现: 1 #include <stdio.h> 2 3 int main() 4 { 5 int a, b; 6 scanf("%d %d", &a, &b); 7 int t; 8 9 while ( b != 0){ 10 t = a % b; 11 a = b; 12 b = t; 13 printf("a

[转]100个经典C语言程序(益智类问题)

目录: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 1.7 分数四则运算 17.平分七筐鱼 18.有限5位数 19. 8 除不尽的数 21.4位反序数 22.求车速 23.阿姆斯特朗数 24.完全数 26.亲密数 27.自守数 28.回文数 29.求具有abcd=(ab+c

一起talk C栗子吧(第九回:C语言实例--最大公约数)

各位看官们,大家好.从今天開始,我们讲大型章回体科技小说 :C栗子,也就是C语言实例.闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是素数的样例.这一回咱们说的样例是:最大公约数. 看官们,最大公约数也叫最大公因数.两个整数中的公约数有好几个.这些公约数中最大的一个就叫作最 大公约数.当然了,这是数学中的一个概念,假设不明确了,能够查阅相关的数学知识. 最大公约数的求法有好几种.最经常使用的是辗转相除法,也叫欧几里德算法.该算法的原理例如以下: 1.假设正整数a除