c语言,输入俩个正整数n和m,求其最大公约数和最小公倍数

如题所述

#include<stdio.h>
void main(){
int a,b,i;scanf("%d %d",&a,&b);
for(i=a+b;i>1;i--){
if(a%i==0&&b%i==0){
printf("最大公约数为%d,最小公倍数为%d\n",i,a*b/i);return 0;
}
}
printf("最大公约数为1,最小公倍数为%d\n",a*b);return 0;
}

给你来个最简单的吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-09
# include <stdio.h>
# include <math.h>
int main()
{
 int m, n, i = 0, c = 0;
 printf("m=");
 scanf_s("%d", &m);
 printf("n=");
 scanf_s("%d", &n);
 if (m > n)
 {
  for (i = m;i > 0;i--)
  {
   if (m % i == 0 && n % i == 0)  break;
  }
  printf("两个数的最大公约数为:%d", i);
 }
 else
 {
  for (i = n; i > 0;i--)
  {
   if (m % i == 0 && n % i == 0) break;
  }
  printf("两个数的最大公约数为:%d", i);
 }
 if (m > n)
 {
  for (c = m;c < 30000;c++)
  {
   if (c % m == 0 && c % n == 0) break;
  }
  printf("两个数的最小公倍数为:%d", c);
 }
 else
 {
  for (c = n;c < 30000 ;c++)
  {
   if (c % m == 0 && c % n == 0) break;
  }
  printf("两个数的最小公倍数为:%d", c);
 }
 return 0;
}

第2个回答  2019-05-29
#include <stdio.h>
int main()
{ int w,t,n,m,z,p;

scanf("%d%d",&n,&m);
w=n*m; while(m!=0)

{ if(n<m)

{ p=n; n=m; m=p; }
t=n%m;
n=m;
m=t;
}
z=w/n;
printf("最大公约数是:%d\n最小公倍数是:%d",n,z);

return 0;
}
第3个回答  2018-01-06
#include<stdafx.h>
int main()
{
int m, n, min, i, k,max;
scanf_s("%d%d", &m, &n);
if (m < n)min = m,max=n;
else min = n,max=m;//确定数的大小
for (i = min; i >= 1; i = i - 1)
{
if (min%i == 0 && max%i == 0)break;
}
printf("最大公约数:%d\n", i);
for (k = 1; k >= 1; k++)
{
i = k*max;
if (i % min == 0) break;
}
printf("最小公倍数:%d\n",i);
}
第4个回答  2019-05-21

相似回答