求最大公约数
来源:互联网 发布:算法设计 编辑:程序博客网 时间:2024/05/24 11:13
辗转相除:
算法分析:有两个数a和b,
设a>b,
首先求a和b的余数,b赋值给a,余数赋值给b;
重复以上操作,直到余数为0;
b值即为两数的最大公约数
#include<stdio.h>/*辗转相除法求最大公约数*/int gcd(int m,int n){int r;r=m%n;//求余数while(r!=0)//辗转相除{m=n;n=r;r=m%n;}return n;//返回最大公约数}/*主函数*/void main(){int a,b,c;int i;printf("输入两个正整数(空格隔开):\n");scanf("%d,%d\n",&a,&b);c=gcd(a,b); printf("a和b的最大公约数是:%d\n",c);}
相减法:
算法分析:有两个整数a和b;
若a>b,则a=a-b;
若a<b,则b=b-a;
重复以上操作,直到a=b,
a(或b)为两数最大公约数
/*相减法求最大公约数*/#include<stdio.h>/*主函数*/int main(){int m,n;int t;printf("输入m和n:");scanf("%d,%d\n",&m,&n);while(m>0&&n>0){if(m>n)m=m-n;elsen=n-m;} printf("最大公约数为:%d\n",m);return 0;}穷举法:
算法分析:有两个整数a和b;
设i=1;
若a,b能同时被i整除,则t=i;
i++;
若i<=a(或b),重复以上操作,直到i>a(或b);
则t为最大公约数;
#include<stdio.h>void main(){int a,b,c;int i;printf("输入两个正整数(空格隔开):\n");scanf("%d %d",&a,&b); if(b>a){c=a;a=b;b=c;}for(i=b;i>=1;i--){if(a%i==0&&b%i==0)break;} printf("a和b的最大公约数是:%d\n",i);}
0 0
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 求最大公约数
- 由Android属性动画原理联想到DataBinding
- 【BZOJ 3277】串 广义后缀自动机
- C#与C/C++的交互
- Unix Network Programming——unp.h
- 笔记10-15
- 求最大公约数
- 怎样求任意一个数的位数问题
- xcode不发布 打包成ipa
- Chris and Magic Square CodeForces
- 【蓝桥杯】-基础练习03-字母图形
- Raspbian:最小的操作系统是怎样炼成的?
- 剑指offer-栈的压入、弹出序列-php
- 学习笔记一LDA降维与PCA的区别
- Spring AOP配置通配符