C语言——输入两个正整数 m 和 n。求其最大公约数和最小公倍数。

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int main()
{
   int m, n;
   int i;
   int x = 1;
   int y = 0;
   printf("请输入两个正整数m和n:\n");
   scanf("%d,%d", &m, &n);
   for (i = 1; i <= m && i <= n; i++) 
	{
       if (m % i == 0 && n % i == 0) 
		{
           x = i;
       }
   }
   for (i = 1; i <= m * n; i++) 
	{
       if (i % x == 0) 
		{
           y = i;
       }
   }
   printf("最大公约数是:%d\n", x);
   printf("最小公倍数是:%d\n", y);
   
   return 0;
} 

我们首先定义了两个变量m和n,以及一个变量i,用于循环计数。然后,我们使用scanf函数从用户那里获取两个正整数m和n。

接下来,我们使用两个循环分别计算最大公约数和最小公倍数。

首先,我们使用一个循环遍历m和n之间的所有整数,并检查它们是否同时能够整除m和n。如果是这样,我们将该整数作为最大公约数。

其次,我们使用另一个循环遍历1到m乘以n之间的所有整数,并检查它们是否能够整除最大公约数。如果是这样,我们将该整数作为最小公倍数。

最后,我们打印出最大公约数和最小公倍数。

相关推荐
To_OC7 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
金銀銅鐵11 小时前
[Python] 扩展欧几里得算法
python·数学·算法
To_OC13 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
郝学胜_神的一滴18 小时前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
To_OC1 天前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
05Kevin2 天前
lk每日冒险题--数据结构6.27
算法
To_OC2 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
千纸鹤安安2 天前
千问Qwen-AgentWorld来了:一个语言模型搞定七大Agent场景,GPT-5.4都输了
算法