雨滴在心头


私信TA

用户名:ydzxt

访问量:14793

签 名:

等  级
排  名 3917
经  验 1808
参赛次数 0
文章发表 5
年  龄 0
在职情况 学生
学  校 重庆邮电大学
专  业

  自我简介:

#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 人评分

  评论区

#include<stdio.h>
int main(){
	int m,n,j,t;
	scanf("%d %d",&m,&n);
	if(m>n){
		t=n;
	}else if(m<=n){
	
	t=m;
}
	for(int i=1;i<=t;i++){
		if(m%i==0&&n%i==0){
			j=i;
		}
	}
	printf("%d %d\n",j,n*m);
	return 0;
}
真不知道哪错了...
2019-10-20 18:18:19
#include<stdio.h>
int main()
{
	int a, b,c;
	scanf("%d%d", &a, &b);
	if (a>b)
	{
		c=a;
		a = b;
		b = c;
	}
	for (int i = a; i >=1 ; i--)
	{
		if (a%i==0 && b%i==0)
		{
			printf("%d ", i);
			break;
		}
	}
	for (int i1 = 1; i1 <=a*b; i1++)
	{
		if (b*i1%a == 0 )
		{
			printf("%d", i1*b);
			break;
		}
	}
}
2019-09-09 01:22:20
这种写的比较直白比较好理解
2019-08-29 13:32:55
#include <stdio.h>
int main()
{
 int m,n,gy,gb,cj;
 scanf("%d %d",&m,&n);
 cj=m*n;
 while(gy)
 {
  gy=m%n;
  m=n;
  n=gy;
  }
  gb=cj/m;
  printf("%d %d\n",m,gb);
 return 0;
}
请问为什么我用5,7在VC上测试答案是1和35
但我提交时显示答案错误呢
郁闷了很久,求教
2019-08-15 13:34:09
i=(a>b?b:a)这样不会更好吗
2019-07-26 13:18:48
#include <stdio.h>
int main()
{
	int x,y,t;
	printf("请输入两个整数,求其公约数\n");	
	scanf("%d %d",&x,&y);
	if(x<y)                                               //max=x;min=y
	{	t=x;
		x=y;
		y=t;
	}
	
	for(t=y;t>0;t--)                                        //输入的是正整数,所以循环会一直成立 ,t取到1循环一定成立 
	{
		if(y%t==0&&x%t==0)
		{break;
		}
	}
	
	int z=y;                                                  //存放最小公约数
	for(;z>0;z++)
	{	if(z%x==0&&z%y==0)
		{
			break;
		}
		
	}
	printf("%d %d\n",t,z);
	return 0;
}
2019-07-17 20:11:48
#include <stdio.h>

int main(void)
{ int i,m,n,Maxa,Mina;
scanf("%d %d",&m,&n);
Maxa=1;/*你好我想问为什么这里不写,即不对Maxa初始化在这里的oj上就答案错误,写了就正确,而我自己的电脑上写不写没区别呢?是有什么特殊数据吗?*/
if (m>n){
	int temp;
	temp=m;
	m=n;
	n=temp;
}
for (i=1;i<=n;i++){
	if(m%i==0 && n%i==0 && Maxa<i){
		Maxa=i;
	}
}
if(Maxa==1){
	Mina=m*n;
} else {
	Mina=m*n/Maxa;
}
printf("%d %d",Maxa,Mina);
return 0;
}
2019-06-13 12:39:58
#include<stdio.h>
main()
{
    int a,b,s;
    scanf("%d%d",a,b);
    for(s=1;s<=a*b;s++)
    {
        if(s%a==0&&s%b==0)
        printf("%d\n",s);
        break;
    }
}

上面只是求最小公倍数,问为什么错了啊?
2019-04-22 08:47:33