原题链接:[编程入门]最大公约数与最小公倍数
#include<stdio.h>
int main()
{
int a,b,i,j;//i最大公约数,j最小公倍数
scanf("%d %d",&a,&b);
for (i=(a>b?a:b);i>0;i--){
if (a%i==0&&b%i==0){
j=a*b/i;
printf("%d %d\n",i,j);
break;
}
}
return 0;
}最大公倍数值不会大于a,b最大值;
两个数都能整除它;
最小公倍数等于a*b除以最大公约。
有结果就需要返回,使用break;
0.0分
16 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> int a,b,c,d; int gcd(int a,int b) { if(b==0) { return a; } return gcd(b,a%b); } main() { scanf("%d%d",&a,&b); c=gcd(a,b); d=a*b/gcd(a,b); printf("%d %d",c,d); }#include <stdio.h> int main() { int m, n, b; scanf("%d%d", &m, &n); for (int a = m*n; a > 0; a--) { if (m%a == 0 && n%a == 0) { b = m*n / a; printf("%d %d", a, b); break; } } return 0; }@李海阔 #include <stdio.h> int main() { int m, n, b; scanf("%d%d", &m, &n); for (int a = m*n; a > 0; a--) { if (m%a == 0 && n%a == 0) { b = m*n / a; printf("%d %d", a, b); break; } } return 0; }#include<stdio.h> int main() { int m, n, c; scanf("%d%d", &m, &n); for (int i=1; 0<i<=m*n; i++) { if (m % i == 0 && n %i == 0) { c = m*n; printf("%d %d\n", i, c); } } return 0; }#include<stdio.h> int main() { int a,b,i=0,max; scanf("%d%d", &a, &b); max=a; if(max<b) max=b; do{ i++;}while(a%i!=0||b%i!=0); printf("%d ",i); do{ max++; }while(max%a!=0||max%b!=0); printf("%d\n",j); return 0; }有没有大佬知道这个哪里错了啊#include <stdio.h> #include <stdlib.h> short gcd(short,short); int main() { short a,b; scanf("%hd %hd",&a,&b); printf("%hd %hd",gcd(a,b),a*b/gcd(a,b)); return 0; } short gcd(short a,short b) { if(a == b) return a; if(a < b) return gcd(b,a); else { if(!a&1 && !b&1) return gcd(a>>1,b>>1) << 1; else if(!a&1 && b&1) return gcd(a>>1,b); else if(a&1 && !b&1) return gcd(a,b>>1); else return gcd(b,a-b); } }