本程序是在VS中实现,若要在其他软件上使用,可自行修改
源程序:
#include <stdio.h>
int main()
{
printf("请输入两个正整数\n");
int m, n, min, max, t, i;
scanf_s("%d%d", &m, &n);
if (m >> n)
{
max = m;
min = n;
}
if (m << n)
{
min = m;
max = n;
}
if (m == n)
{
printf("这两个数的最大公约数和最小公倍数相同,为%d\n", m);
return 0;
}
for (t = min;; t--)
{
if (m % t == 0 && n % t == 0)
{
printf("这两个数的最大公约数是%d\n", t);
break;
}
}
for (i = max;; i++)
{
if (i % m == 0 && i % n == 0)
{
printf("这两个数的最小公倍数是%d\n", i);
break;
}
}
return 0;
}
#include <stdio.h>
int main()
{
printf("请输入两个正整数\n");
int m, n, min, max, t, i;
scanf_s("%d%d", &m, &n);
if (m >> n)
{
max = m;
min = n;
}
if (m << n)
{
min = m;
max = n;
}
if (m == n)
{
printf("这两个数的最大公约数和最小公倍数相同,为%d\n", m);
return 0;
}
for (t = min;; t--)
/*for循环使用格式如下
for(初始化语句;判断条件语句;控制条件语句)
{
循环体语句;
}
其中两个分号必须有,第二个和第三个参数在某些情况下可以不写,如本程序中的
for (t = min;; t--),没有写第二个参数,但是分号不能省略
*/
{
if (m % t == 0 && n % t == 0)
{
printf("这两个数的最大公约数是%d\n", t);
break;
}
}
for (i = max;; i++)
{
if (i % m == 0 && i % n == 0)
{
printf("这两个数的最小公倍数是%d\n", i);
break;//此处break用于突出循环
}
}
return 0;
}
实验结果:
m<n时
m=n时
m<n时
看完的大佬如果觉得我写的还可以就点个赞支持一下,感谢大佬。