链接:https://www.nowcoder.com/questionTerminal/11e5b7576c5a4e7c971de332d8472d51 来源:牛客网 #include <stdio.h> int main() { //输入两个正整数m和n,求其最大公约数和最小公倍数。 int m,n,x,y; scanf("%d %d",&m,&n); //把x,y重新装一遍m,n防止计算完最大公约数后数值发生改变 x = m; y = n; int t = 0; //最大公约数 while(n!=0){ t = m%n; m = n; n=t; } printf("最大公约数为%d \n",m); //最小公倍数 if(x<y) { t = x; x = y; y = t; } for(int i=x; i>0; i++) if(i%x==0 && i%x==0) { printf("%d和%d的最小公倍数是%d", x, y, i); break; } return 0; }
#include <stdio.h> int main() { //输入两个正整数m和n,求其最大公约数和最小公倍数。 int m,n,x,y; scanf("%d %d",&m,&n); //把x,y重新装一遍m,n防止计算完最大公约数后数值发生改变 x = m; y = n; int t = 0; //最大公约数 while(n!=0){ t = m%n; m = n; n=t; } printf("最大公约数为%d \n",m); //最小公倍数 if(x<y) { t = x; x = y; y = t; } for(int i=x; i>0; i++) if(i%x==0 && i%x==0) { printf("%d和%d的最小公倍数是%d", x, y, i); break; } return 0; }
#include<stdio.h> int main(){ int m,n,i,temp; printf("请输入两个正整数(num1,num2):"); scanf("%d,%d",&m,&n); if(n>m){ //确保m>n, temp=n;n=m;m=temp; } //暴力求解最小公倍数 // i=m; // while(i%m!=0||i%n!=0) // i++; // printf("最小公倍数为:%d\n",i); //非暴力 i=m*n; while((m%n)!=0){ //辗转相除法(欧几里得算法) n=m%n; m=n; } printf("最大公因数为:%d\n",n); printf("最小公倍数为:%d",i/n); return 0; }
#include <stdio.h> int main() { int a,b,c,d,i,j,temp; scanf("%d %d",&a,&b); if(a>b) { temp=b; b=a; a=temp; } for(i=b;i>0;i++) { if(i%a==0&&i%b==0)break; } for(j=a;j>0;j--) { if(b%j==0&&a%j==0)break; } printf("%d\n%d",j,i); return 0; }