关于两个数的最大公约数的问题
2017-03-22 20:55
253 查看
求两个数的最大公约数的有关算法如下: (1)辗转相除法 两整数a和b: ① a%b得余数c ② 若c=0,则b即为两数的最大公约数,结束 ③ 若c≠0,则a=b,b=c,再回去执行① (2)相减法 两整数a和b: ① 若a>b,则a=a-b ② 若a<b,则b=b-a ③ 若a=b,则a(或b)即为两数的最大公约数,结束 ④ 若a≠b,则再回去执行① (3)穷举法: ① i= a b中的小数 ② 若a,b能同时被i整除,则i即为最大公约数,结束 ③ i--,再回去执行② #include<stdio.h> #include<stdlib.h> int select=1; //辗转相除法求最大公约数 void gcd1() { int m, n, a, b, c; printf("请输入两个整数并用空格隔开:\n"); scanf("%d%d",&a,&b); m=a;n=b; while(b!=0) //余数不为0,继续相除,直到余数为0 { c=a%b;a=b;b=c; } printf("辗转相除法求最大公约数=%d\n",a); } //相减法求最大公约数 void gcd2() { int a,b; printf("请输入两个整数a和b并用空格隔开:\n"); scanf("%d%d",&a,&b); while(a!=b) { if ( a>b ) a-=b; else b-=a; } printf("相减法求最大公约数=%d\n",a); } //穷举法求最大公约数 void gcd3() { int a,b,c,p,i; printf("请输入两个整数a和b并用空格隔开:\n"); scanf("%d%d",&a,&b); for(i=1;i<a+1;i++) if(a%i==0 && b%i==0) { p=i; } printf("穷举法求最大公约数为%d\n",p); } //菜单界面 void menu() { int num; printf(" ******************求最大公约数***********************\n"); printf(" *--------------------- ---------------------- *\n"); printf(" * ********************************************* *\n"); printf(" * * 1.辗转相除法 * * 2.相减法 ** *\n"); printf(" * ********************************************* *\n"); printf(" * * 3.穷举法 * * 0.退出程序 ** *\n"); printf(" * 请从1-3中选择方法 *\n"); printf(" *****************************************************\n"); scanf("%d",&num); switch(num) { case 1:gcd1();break; case 2: gcd2();break; case 3: gcd3();break; case 0:select=0;break; } } //循环操作 int main() { while(select) { menu(); } system("pause"); return 0; }
相关文章推荐
- 有关于递归函数的一些学习记录(Recursion)走楼梯,递归找出最两个数的大公约数,汉诺塔问题
- 9.在数学计算或数字分析中,经常会用到计算两个数的最大公约数的问题。即:输入两个正整数,当两个数字有一个不是正整数时会产生异常。当输入非整数数字时,也产生异常。输入无错误后,可计算两个数的最大公约数。
- java中关于整数的一些操作问题--最大公约数、最小公倍数、质数等
- 求两个数的最大公约数问题
- 求两个数的最大公约数--2012腾讯实习生招聘笔试题,由此想到狼追兔子问题
- 关于用Java来写最大公约数和最小公倍数的问题详解及代码
- 三种方法实现求两个数的最大公约数
- 两个数的最大公约数
- java求两个数最大公约数
- 求两个整型数字的最大公约数问题
- 最大公约数的问题 编程之美p150
- 辗转相除法求两个数的最大公约数
- 关于sizeof的最大值问题
- 答案_最大公约数问题
- 最大公约数问题
- 求两个数的最大公约数 最小公倍数
- 关于php页面最大执行时间问题(set_time_limit函数在windows下不起作用的解决)
- 两个数的最大公约数
- 用递归算法求两个数的最大公约数
- C++/C经典算法百题--(39-42)年龄几何,三色球问题,两个正整数的最大公约数和(GCD)和最小公倍数(LCM)