首页 > 试题广场 >

输入两个正整数m和n,求其最大公约数和最小公倍数。

[问答题]
输入两个正整数m和n,求其最大公约数和最小公倍数。
推荐

#include<stdio.h>

int main( )

{

int p,r,n,m,temp;

printf("请输入两个正整数n,m:”);

scanf("%d,%d",&n,&m);

if(n<m)

{

temp=n;

n=m:

m=temp;

}

p=n*m;

while(m!=0)

{

r=n%m;

n=m;

m=r;

}

printf("它们的最大公约数为:%d\n",n);

printf(“它们的最小公约数为:%d\n",p/n);

return 0;

}


发表于 2018-03-25 10:56:08 回复(0)
链接: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;
}

发表于 2024-04-09 09:55:09 回复(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;
}

发表于 2022-09-18 20:56:13 回复(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;
}

发表于 2021-01-13 22:17:51 回复(0)
#include<stdio.h>
int gcd(int a,int b)
{if(b==0) return a;
else{return gcd(b,a%b);}
}
int main()
{

    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d %d",gcd(a,b),a*b/gcd(a,b));
    return 0;


}

发表于 2020-04-30 15:18:16 回复(0)
#include <stdio.h>
int split(int n, int m){
 while(n != m){
  if(n > m)
   n = n - m;
  else
   m = m - n;
 }
 return n;
}
int common(int n, int m){
 int store = 0;
 store = n * m / split(n,m);
 return store;
}
int main(){
 int x;
 int y;
 scanf("%d%d", &x,&y);
 printf("%d\n", split(x,y));
 printf("%d\n", common(x,y));
}
发表于 2019-12-22 17:04:46 回复(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;
}

发表于 2019-11-07 23:40:25 回复(0)
#include <stdio.h>
void main()
{
int m,n,r,temp,p;
printf("请输入两个正整数m和n:\n");
scanf("%d,%d",&m,&n);
if(n<m)
{
temp=n;
n=m;
m=temp;
p=n*m
}
while(m!=0)
{
r=n%m;
n=m;
m=r;
}
printf("它们的最大公约数为:%d\n",n);
printf(“它们的最小公倍数为:%d\n",p/n);

}
发表于 2019-10-10 15:40:39 回复(0)