求两个数的最大公约数
来源:互联网 发布:顺义握奇数据怎么样 编辑:程序博客网 时间:2024/06/06 07:08
本程序运用三种方法计算两个数的最大公约数:相减法、辗转相除法、穷举法。
/*文件名:求两个数最大公约数作者Smile So luck版本号2017.3.21.03运行环境visual stdio6.0程序功能:用三种方法计算出两个正整数的最大公约数*/#include<stdio.h>#include<stdlib.h>int a,b,k=1;void First();void Second();void Third();void menu();int main(){while(k){menu();}system("pause");return 0;}void First() /*穷举法*/ { printf("请输入两个正整数:\n"); scanf("%d%d",&a,&b); /*从两个数a和b中的较小数开始逐个减小1,寻找能整除a和b的整数。第一个找到的整数即整数a和b的最大公约数。*/ int n=a; if (n>b) n=b;/*取两个数中的较小数*/ for(int i=n;i>=1;i--) { if (a%i==0&&b%i==0) { printf("最大公约数:%d \n",i); break; } } }void Second() /*辗转相除法*/{int m, n; int m_cup, n_cup, res; /*被除数, 除数, 余数*/ printf("请输入两个正整数:\n"); scanf("%d %d", &m, &n); if (m > 0 && n >0) { /*m除以n得余数res,再把n赋值给m,res赋值给n,如此循环直到res=0,n为最大公约数*/ m_cup = m; n_cup = n; res = m_cup % n_cup; while (res != 0) { m_cup = n_cup; n_cup = res; res = m_cup % n_cup; } printf("最大公约数是: %d\n", n_cup); } else printf("Error!\n"); }void Third() /*相减法*/{ int m, n; printf("请输入两正个整数:"); scanf ("%d %d", &a, &b); m=a; n=b; /* a, b不相等,大数减小数,直到相等为止。*/ while (a!=b) { if (a>b) a=a-b; else b=b-a;} printf("最大公约数是:%d\n",a); } void menu()/* 界面函数*/{int num;printf(" \n\n \n\n");printf("***************************************\n\n");printf(" * 计算两个数的最大公约数 * \n\n "); printf(" ********************************* \n\n"); printf(" ---------------------------------- \n");printf(" * 1.使用穷举法计算 * \n");printf(" * 2.使用辗转相除法计算 * \n");printf(" * 3.使用相减法计算 * \n"); printf(" * 4.退出系统 * \n"); printf(" --------------------------------- * \n"); printf("请选择菜单编号:");scanf("%d",&num);switch(num) /*用数字0到4执行以上定义函数的功能*/{ case 1:First();break; case 2:Second();break; case 3:Third();break;case 4:k=0;break;default:printf("请在0-4之间选择\n");}}
0 0
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 模板类和友元
- spin_lock & mutex_lock的区别?
- 可变参数列表
- 用Android Studio签名打包signature versions v1 v2
- 音频文件pcm转换wav
- 求两个数的最大公约数
- linux+ubuntu:ubuntu下解压缩zip,tar,tar.gz和tar.bz2文件
- 公司入网--光猫路由设置以及注意事项
- AsycTask(handler的封装类)
- win10 切换IP配置脚本
- Android 用户行为收集之 GoogleAnalytics
- the descriptor is not a socket
- 第六周:[leetcode] 多思路解 169.Majority Element
- python语言 笔记一