原题链接:[编程入门]最大公约数与最小公倍数
0.0分
39 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
 
#include<stdio.h> int main() { int i; int j; int d; int x; int y; int n;//最大值 int m;//最小值 int a[100]; scanf("%d%d", &x, &y); if (x > y) { n = x; m = y; } else { n = y; m = x; } for (i = m; i >= 1; i--) { if (x % i == 0 && y % i == 0) { j = i;//最大公约数 break; } } d = x * y / j;//最小公倍数 printf("%d %d",j,d); return 0; }#include <stdio.h> int main(void) { int m, n; scanf("%d%d", &n, &m); int i = 2; int y = 1; int b = 1; while (m % i == 0 && n % i == 0) { m = m / i; n = n / i; y = y * i; i++; } b = m * n * y; printf("%d %d", y, b); return 0; }为啥50分这个为什么是错的? #include<stdio.h> int main() { int m,n; scanf("%d%d", &m, &n); int i; if(m <= n) { for(i = m - 1;i > 0;i--) { if(m % i == 0) { printf("%d",i); break; } } } else { for(i = n - 1;i > 0;i--) { if(n % i == 0) { printf("%d",i); break; } } } printf(" %d",m * n / i); return 0; }#include<stdio.h> int main() { int m,n,t,d,a,b,k; scanf("%d,%d",&m,&n); if(m<n) { t=m; m=n; n=t; } a=m; b=n; while(a&&b) { a=a%b; b=b%a; } if(a==0) { printf("%d\n",b); d=m*n/b; printf("%d\n",d); } else if(b==0) { printf("%d\n",a); k=m*n/a; printf("%d\n",k); } return 0; }想请问,这个怎么错了啊 #include<stdio.h> int max(int a,int b) { return (a>b)?a:b; } int min(int a,int b) { return (a<b) ? a : b; } int main() { int m,n,i,j,y; scanf("%d %d",&m,&n); j=max(m,n); y=min(m,n); m=j; n=y; for(i=1;i!=0;) //欧几里得算法 { i=m%n; m=n; n=i; } printf("最大公约数%d\n",m); printf("最小公倍数%d\n",j*y/m);//最小公倍数=两数之和除以最大公约数 return 0; }