最大公约数(最大公因数)和最小公倍数的话,举个例子,比如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;
}
程序如果有问题的话,请大佬指出请教