wlbk.net
当前位置:首页 >> 计算最大公约数的程序 >>

计算最大公约数的程序

#include <stdio.h> #include <stdlib.h> //使用欧氏演算法求最大公约数 int gcd(int a, int b) { if (a < b) { int t = a; a = b; b = t; } if (a % b == 0) { return b; } else { return gcd(b, a % b); } } int main() { printf("请输入两个数:\n"); int a, b; scanf("%d", &a); scanf("%d", &b); printf("最大公约数为:%d", gcd(a, b)); return 0; }

#include int main() { int i,a,b,t; scanf("%d%d",&a,&b);//输入数a,b if(a>b)//比较a,b大小,如果a>b则交换,结果为a { t=a; a=b; b=t; } for (i = a; i >= 2; i--)//以较小的a为基数,每次i减小1循环求最大公约数 { if (a % i == 0 && b % i == 0)//如果两数

#include <stdio.h> void main() { int a,b,i,j; printf("请输入两个数:"); scanf("%d%d",&a,&b); if(a<b); { i=a;a=b;b=i; } for(i=b;i>1;i--) if(a%i==0&&b%i==0) break; for(j=a;;j++) if(j%a==0&&j%b==0) break; printf("\n最大公约数是:%d",i); printf("\n最小公倍数是:%d",j); }

int main() { int numerator,denominator,remainder,gcd; cout<<"Please enter two positive integers:"; cin>>numerator>>denominator; assert(denominator); if (denominator>numerator) {int temp=denominator; denominator=numerator; numerator=

在vc编译环境下编译#include"stdio.h" main() { int a,b,c; int min=0,flag=0; printf("请输入3个正整数\n"); printf("请输入第一个正整数:"); scanf("%d",&a); printf("请输入第一个正整数:"); scanf("%d",&b); printf("请输入

最大公约数即从两个数中较小的那个数开始依次向下找,第一次能同时被那两个数整除的即为最大公约数,如6和9,3就是它俩的最大公约数.#include main() { int m,n; int i; printf("input two numbers:\n"); scanf("%d%d",&m,&n); if(m>n) { i=m; m=n; n=i; } for(i=m;i>0;i--) if(m%i==0 && n%i==0) break; printf("最大公约数是%d\n",i); }

就发第一个吧,没分没动力 因为2个题目是有联系的,向1楼说的那样#include <stdio.h> main() { int a,b,c,i; printf("求2个数的最大公约数\n"); printf("输入两个数用空格隔开,再回车:\n"); scanf("%d",&a); scanf("%d",&b); for(i=1;

#include void main() { int a,b,m,n,temp,c,d; printf("请输入两个数字\n"); scanf("%d%d",&m,&n); d=m*n; while (temp) { a=m>n?m:n; b=m temp=a%b; m=temp; n=b; } printf("这两个数的最大公约数是%d\n",b); c=d/b; printf("这两个数的最小公倍数是%d\n",c); }

说白了就是怎么样求最大公约的问题.比如输入两个数字,a=5,b=3,求最最公约数,第一步是把5和3倒过来,求5整除3取余,是r=2,不等于0,循环里面就是b=3,a=2,再求3整除2的余数等于r=1并不等于0,在循环里面b=1,a=1,再求1和1的余数,等于0了,所以最小公约数就是1.如果a>b不调换的话,没法进行下面取余的计算.这是一个数学问题.

int divisor (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; /*返回最大公约数到调用函数处*/ }

skcj.net | wkbx.net | ydzf.net | zxsg.net | ceqiong.net | 网站首页 | 网站地图
All rights reserved Powered by www.wlbk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com