对正整数x、y连续进行求余,直到余数为0,此时非0的除数就是最大公约数。x除以y的余数是r,若r不等于0,则把y作为新的x,r作为新的y,重复x除以y的运算,直到r=0为止,此时y就为所求的最大公约数
2017-11-23 18:11
316 查看
#include <stdio.h>//用欧几里得算法(辗转相除法)两正整数的最大公约数 int main() { int x,y,r; printf("请输入两个正整数:"); scanf("%d%d",&x,&y); while(r!=0){ r=x%y; if(r==0) break; x=y; y=r; } printf("最大公约为:%d\n",y); }
运行如下:
相关文章推荐
- 关于“除数和余数的最大公约数就是被除数和除数的最大公约数”
- C语言猜数字游戏,范围为1到100,直到猜对为止,能重复进行多次
- 由于x与y的最大公约数不可能比x与y中较小者大,因此,先找到x与y中较小者t,然后从t开始减1,t到1之间第一个能同时整除x与y的数,就是所求的最大公约数
- 对一个正整数作如下操作:如果是偶数则除以2,如果是奇数则加1,如此进行直到1时操作停止,求经过9次操作变为1的数有多少个?
- 输入一个正整数,经过几次运算直到结果得到1为止
- 对一个正整数作如下操作:如果是偶数则除以2,如果是奇数则加1,如此进行直到1时操作停止,求经过9次操作变为1的数有多少个?
- 编写一段程序,从标准输入读取string对象的序列直到连续出现两个相同的单词或者所有单词都读完为止。使用while循环一次读取一个单词,当一个单词连续出现两次是使用break语句终止循环。输出连续重复出现的单词,或者输出一个消息说明没有人任何单词是重复出现的。
- 使用map来进行票数统计工作,循环输入多个人名,作为key存储到map中,对应的value就是该人获得的票数(即重复输入的次数),当重复输入时,需要对相应的数据进行修改。最红输quit结束循环,打印
- Euclid算法-计算两个正整数的最大公约数
- c++将数组名作为函数参数对数组元素进行相应的运算
- 抛硬币 直到连续出现两次字为止
- Help Tomisu UVA - 11440 难推导+欧拉函数,给定正整数N和M, 统计2和N!之间有多少个整数x满足,x的所有素因子都大于M (2<=N<=1e7, 1<=M<=N, N-M<=1E5) 输出答案除以1e8+7的余数。
- 求两个正整数a 和 b的最大公约数。
- 最大连续重复子串
- [SoapUI] 设置最大等待时间,不断重复的去发送一个request,每次从response中获取一个status,直到这个status从一种状态变成另外一种状态
- 字符串处理算法(八)将字符串中连续出席的重复字母进行压缩(华为校园招聘题)
- java__排序后的数组删除重复数字。给定升序排序的数组,如果数组有 22 个或 22 个以上相同的数字,去掉他们,直到剩下 22 个为止。
- 对于任意正整数都可以找出至少一串连续奇数,它们的和等于该整数的立方。以下程序验证[2,20]之间的数满足这一性质。
- 最大公约数之大数运算
- 求两个正整数的最大公约数GCD