求最大公约数(求最大公约数题50道)

三个数的最大公约数示例?

最大公约数,指两个或多个整数共有约数中最大的一个。求最大公约数,可以先求两个的最大公约数,再用这两个的最大公约数和第三个数一起求最大公约数 。下面举个例子,例如: 求32,80,200的最大公约数,先求32与80的最大公约数 ,80=2x2x2x5,32=2x2x2x2x2 所以,32与80的最大公约数为16, 再求16与200的最大公约数,因为200=8x5x5,16=8×2 所以16,200的最大公约数为8,所以32,80,200的最大公约数为8.

输入两个正整数求最大公约数与最小公倍数的程序,帮我看看我哪里错了 谢谢!!

  • #include stdio.h#include stdlib.h* 输入虎偿港锻蕃蹬歌拳攻哗两个正整数求最大公约数与最小公倍数 *int main(int argc, char *argv[]) { int a,b,m=0,muti=1,n=2,flag=1,max,j,k,i,h; scanf("%d,%d",&a,&b); if(ab) { max=a; } else max=b; while (n = max) { j = b%n; k = a%n; if (j == 0 && k == 0) { m = m + 1; muti = muti*n; a = a n; b = b n; } else { min=a*b*muti } n=n+1; } printf("muti=%d",muti); printf("max=%d",max) return 0;}问题补充:
  • #include iostreamusing namespace std;int min(int a,int b){ int temp; temp=ab?a:b; return temp;}int main(){ cout &虎偿港锻蕃蹬歌拳攻哗quot;这个程序是用来计算两个正整数的最大公约数和最小公倍数的!" endl; find:int m=0,n=0,yue=0,bei=0,a=0,b=0; cout "请输入正整数m" endl; cin m; m=int(m); while (m=0) { cerr "错误输入,请输入正整数" endl; cin m;m=int(m); } cout "请输入正整数n" endl; cin n; n=int(n); while (n=0) { cerr "错误输入,请输入正整数" endl; cin n; n=int(n); } if((m%n==0)||(n%m==0)) { if(mn) { cout "两个数的最大公约数是" n endl; cout "两个数的最小公倍数是" m endl; } else { cout "两个数的最大公约数是" m endl; cout "两个数的最小公倍数是" n endl; } } else { for(int i=1;i=min(m,n);i++) { if((m%i==0)&&(n%i==0)) { yue=i; } } a=myue; b=nyue; bei=a*b*yue; cout "两个数的最大公约数是" yue endl; cout "两个数的最小公倍数是" bei endl; } goto find;}

初学者:C语言求两个整正数的最大公约数和最小公倍数,怎么错了???

  • #includestdio.hint main(){ int a,b,c,d,e; scanf("%d%d",&a,&b); do { c=a%b; if(c!=0) a=b; b=c; printf("%d%dn",a,b);break;} while(c=0)甫触颠吠郯杜奠森订缉; d=b; e=a*bd; printf("%d%dn",d,e); return 0;}
  • 代码可以加一些注释吗? 我怎么看都不理解你求的过程

求最大公约数最小公倍数的C程序

  • # includestdio.hvoid main(){int m,n,p,t,i;printf("Input two numbers");scanf("%d %d",&m,&n);p=m*n; if(mn) *把较大的值赋给n,较小的赋给m* {t=m; m=n; n=t; }for(i=m;i=1;i–) *求最大公约数*{ if(n%i==0 && m%i==0) break;t=i;} for(i=n;i=(m*n);i++) *求最小公倍数* { if(i%n==0 && i%m==0)break; }printf("gongyueshu=%d,gongbeishu=n",t,i);} 运行之后,结果一直是公约数为-85993460 公倍数为空格没有显示任何数菜鸟求教
  • 试试这个程序#include stdio.hint main(int argc,int *argv[]){ int num1,num2,temp; int a,b; a b; printf("please input 2 number:"); scanf("%d,%d",&num1,&num2); if (num1 num2) the result is num1 num2 { temp = num1; num1 = num2; num2 = temp; } a = num1; b = num2; while (b) { temp = a % b; a = b; b = temp; } printf("the zuidagongyuehsu:%d,the zuixiaogongbeishu:%dn",a,num1 * num2 a); system("pause"); return 0;}

下面这个简单的用递归的方法求两个整数的最大公约数和最小公倍数的程序为什么不对呀,比如

  • 输入两个数120 72 ,就编译不同过。跪求好心人帮助!#include iostreamusing namespace std;int comfac(int i, int j){ int c; c = i % j; if(c == 0) return j; else comfac(j, c);}int main(){ int i, j, m, n, temp; cin i; cin j; if(i j) { temp = i; i怠掸糙赶孬非茬石长将 = j; j = temp; } m = comfac(i, j); n = i * j m; cout "最大公约数是" m endl "最小公倍数是" n endl;}
  • 把else comfac(j, c);改成else return comfac(j, c);一试。

求两个正整数的最大公约数和最小公倍数

  • #include stdio.hint main(void){int a,b,c,d;scanf("%d%d",&a,&b);d=a*b;if(ab)do{c=a%b;a=b;b=c;}while (c==0);{printf("最大公约数为:%d",a);printf("最小公倍数为:%d",da);}return 0;}哪里错了求人开导
  • 输入的两个数请用空格分隔,如:12 18#include stdio.hint main() { int p,r,n,m,temp; printf("请输入两个正整数n,m:"); scanf("%d%d,",&n,&m); if (nm) { temp=n; n=m; m=temp; } p=n*m; while(m!=0) { r=n%m; n=m; m=r; } printf("它们的最大公约数为:%dn",n); printf("它们的最小公约数为:%dn",pn); return 0; }希望能解决您的问题。

简单c语音,初学者,找不到哪里错误,求救!最大公约数

  • #includestdio.hvoid main(){ int m,n,t,i,max; scanf("%d,%d",&m,&n); t=m; if(mn) t=n; for(i=0;i=t;i++) { if(m%i==0&&n%i==0) max=i; } printf("max=%d",max);}
  • i怎么能从0开始呢,是2吧

求最大公约数最小公倍数,错误在哪里

  • scanf("%d %d", &a, &b); 第一个逗号前面要加双引号

简单的C++题,程序求最大公约数和最小公倍数,为什么输不出结果来

  • while(d!=0)

哪里错了?C语言求最大公约数

  • #include stdio.hint zxgbs (int n1,int n2){int y,i;for(i=n2;i=1;i–)if (n1%i==0 && n2%i==0){y=i;break;}return y;}main(){int n1,n2,t;scanf("%d %d",&n1,&n2);if (n1n2){ t=n1;n1=n2;n2=t;}printf("zxgbs=%dn",zxgbs(n1,n2));}
  • 你for循环里面应该是i=1吧,你写成i=1了

C语言 求最小公倍数和最大公约数

  • #includestdio.hmain(){ int m,n,t,i,a,b; scanf("%d%d",&m,&n); if(nm) { t=m; m=n; n=t; } i=n; while(i=1) { a=m%i; b=n%i; if(a==0&&b==0) { printf("最大公约数为:%dn",i); break; } else if i–; } i=m; while(m=m*n) { a=i%m; b=i%n; if(a==0&&b==0) { printf("最小公倍数为:%dn",i); break; } else if i++; }}为什么我这个他老提示 i 错误,求大神解释,谢谢…..
  • #include stdio.hvoid main(){int x,y,tempGY,tempGB,GY,GB; printf("输入两个正整数(用空格分开),求这两个正整数的最小公倍数和最大公约数:n"); scanf("%d%d",&x,&y); for(int i=1;i=(xy?x:y);i++){if(x%i==0 && y%i==0)GY=i;} for(i=tempGB;i=(xy?y:x);i–){if(i%x==0 && i%y==0)GB=i;}printf("最大公约数是%d,最小公倍数是%dn",GY,GB);getchar();}
版权声明