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

时间:2021-07-12 00:34:52
题目:输入两个正整数m和n,求其最大公约数和最小公倍数
这题怎么编啊给个思路好吗谢谢各位了

6 个解决方案

#1


【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
main()
{
 inta,b,num1,num2,temp;
 printf("pleaseinputtwonumbers:\n");
 scanf("%d,%d",&num1,&num2);
 if(num1 {temp=num1;
  num1=num2; 
  num2=temp;
 }
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
 {
  temp=a%b;
  a=b;
  b=temp;
 }
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}

#2


至于具体的利用辗除法,用几对简单的数就可以模拟出来!

比如 :  2 和 4
         2 和 3

         4 和 6 更合适一点!

#3


你的程序有问题吧??
if(num1这里没东西了? {temp=num1;
是不是应该加上if(num1>num2)?

#4


我写错了应该加上if(num1%num2==0)你觉得呢

#5


不对我理解错了应该是if(num1<num2)

#6


t=m%n; m=n; n=t;一直除到整除时的n就是最大公约数,m*n/最大公约数,就是最小公倍数.

#1


【程序6】
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
1.程序分析:利用辗除法。
2.程序源代码:
main()
{
 inta,b,num1,num2,temp;
 printf("pleaseinputtwonumbers:\n");
 scanf("%d,%d",&num1,&num2);
 if(num1 {temp=num1;
  num1=num2; 
  num2=temp;
 }
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
 {
  temp=a%b;
  a=b;
  b=temp;
 }
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
}

#2


至于具体的利用辗除法,用几对简单的数就可以模拟出来!

比如 :  2 和 4
         2 和 3

         4 和 6 更合适一点!

#3


你的程序有问题吧??
if(num1这里没东西了? {temp=num1;
是不是应该加上if(num1>num2)?

#4


我写错了应该加上if(num1%num2==0)你觉得呢

#5


不对我理解错了应该是if(num1<num2)

#6


t=m%n; m=n; n=t;一直除到整除时的n就是最大公约数,m*n/最大公约数,就是最小公倍数.