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

最大公约数(最大公因数)和最小公倍数的话,举个例子,比如40和12,40可以分为很多个数相乘得到,比如2乘20,4乘10,5乘8等等,12同理也可以分为2乘6,3乘4等等,所以最大公约数就位4,再比如6和18的最大公约数为6而不是3,1等,再比如4和8的最大公约数为4而不是2,1等,在此呢我发现一个规律,就是求两个数的最大公约数,可以用大一点的数除以小一点的数,得到的余数就是最大公约数,比如40除以12得到的结果为3余4,则最大公约数为4,也不知道早就有这个规律还是我自个发现的,反正挺好用的,至于最小公倍数的话,我是这样想的,两个数随便挑一个,用一个for循环,怎么循环呢,就是用这个数乘一个从1开始不断递增的数,乘到啥时候呢,乘到刚好能与另外一个数整除就可以了,比如40和12,我随便那一个数比如40,我40乘1=40,与12除不尽,然后40乘2=80与12还是除不尽,然后40乘3=120与12可以整除,所以最小公倍数为120

在这里插入代码片

#include<stdio.h>
int main()
{
int m,n,i, p, t;
printf(“请输入m和n的值:”);
scanf("%d%d", &m,&n);
for (i = 1; ; i++)
{
p = n * i;
t = p % m;
if (t==0)//这里的话要注意,如果写成=的话会被默认为赋值
break;
}
printf(“最大公约数:%d\n”, p);
if (n > m)
printf(“最小公倍数:%d”, n % m);
if(m>n)
printf(“最小公倍数:%d”, m % n);
return 0;
}
程序如果有问题的话,请大佬指出请教

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值