求两个正整数的最大公约数
来源:互联网 发布:ps合成图片软件 编辑:程序博客网 时间:2024/05/03 03:06
//*********求两个正整数的最大公约数问题***********//作者:高双//版本:v1.0//创建时间:2017年3月17日//主要功能://(1)辗转相除法: ① a%b得余数c // ② 若c=0,则b即为两数的最大公约数,结束 // ③ 若c≠0,则a=b,b=c,再回去执行① //(2)相减法 :两整数a和b: // ① 若a>b,则a=a-b // ② 若a=b,则a(或b)即为两数的最大公约数,结束 // ③若a≠b,则再回去执行① //(3)穷举法: // ① i= a b中的小数 // ② 若a,b能同时被i整除,则i即为最大公约数,结束 // ③ i--,再回去执行② ////************************************#include<stdio.h>int main(){ int a,b,h=1; int divisor1 (int a,int b); //函数声明 int divisor2 (int a,int b); int divisor3 (int a,int b); int judge(int a,int b); int x,y,z; while(h==1)//循环 { printf("请输入两个整数:"); scanf("%d%d",&a,&b); if(judge(a,b)==0)//判断输入数据的正确性 { printf("请输入正确的两个整数\n"); } else { x=divisor1 ( a, b);//调用函数 y=divisor2 ( a, b); z=divisor3 ( a, b); printf("辗转相除法求得的最大公因数:%d\n",x); printf("相减法求得的最大公因数:%d\n",y); printf("穷举法求得的最大公因数:%d\n",z); printf("1.下一组数据 2.退出\n"); scanf("%d",&h); } } return 0;}//判断输入整数的正确性int judge(int a,int b){ if(a>0&&b>0) //a与b都为大于0的整数 return 1; else return 0;}//辗转相除法求两数的最大公约数int divisor1 (int a,int b) { int temp; //定义整型临时变量 if(a<b) //通过比较求出两个数中的最大值和最小值 { temp=a; a=b; b=temp; } while(b!=0) //通过循环求两数的余数,直到余数为0 { temp=a%b; a=b; //变量数值交换 b=temp; } return a; //返回最大公约数到调用函数处 } //相减法求两数的最大公约数int divisor2 (int a,int b) { int temp; //定义整型临时变量 while(a!=b) //通过循环求两数的差,直到减数等于差 { if(a>b) a=a-b; else { if(a<b) //通过比较把较大数赋给a { temp=a; a=b; b=temp; } a=a-b; } } return a; //返回最大公约数到调用函数处 } //穷举法求两数的最大公约数int divisor3 (int a,int b) { int temp; //定义整型临时变量 if(a>b) //通过比较求出两个数中的最大值和最小值 { temp=a; a=b; b=temp; } for(int i=a;i>0;i--) if(a%i==0&&a&&b%i==0) //若a,b能同时被i整除,则i即为最大公约数 break; return i; //返回最大公约数到调用函数处 }
0 0
- 求两个正整数的最大公约数?
- 求两个正整数的最大公约数
- 求两个正整数的最大公约数
- 求两个正整数的最大公约数
- 求两个正整数的最大公约数
- 求两个正整数的最大公约数
- 求两个正整数的最大公约数
- 求两个正整数的最大公约数
- 求两个正整数的最大公约数
- 求两个正整数的最大公约数
- 求两个正整数的最大公约数(GCD)
- 求两个正整数的最大公约数和最小公倍数
- 求两个正整数的最大公约数和最小公倍数
- 求两个正整数的 最大公约数和最小公倍数
- 求两个正整数的最大公约数和最小公倍数!
- 求两个正整数的最大公约数和最小公倍数
- 求两个正整数的最大公约数与最小公倍数
- 求两个正整数之间的最大公约数
- 百度一面(电话面试)总结
- Linux—20条命令(二)
- 大数据实时处理实战
- Java前期(静态)绑定和后期(动态)绑定
- UltralEdit替换回车/换行符
- 求两个正整数的最大公约数
- Tomcat源码学习-1-初始化
- [C语言][编程]将字符串分割到字符串数组中
- python装饰器
- 未能正确加载包“Microsoft.Data.Entity.Design.Package.MicrosoftDataEntityDesignPackage
- httpservlet
- java多线程(13)--线程同步工具之CountDownLatch
- Java夯实基础(泛型)
- NULL和'\0'的区别