两个数的最小公倍和最大公约数问题
1
#include <stdio.h>
2![]()
3
int Gcd(int x,int y);
4
int Icm(int x,int y);
5![]()
6
int main(void)
7
{
8
int n,m;
9![]()
10
printf("请输入两个整数(n,m):");
11
scanf("%d,%d",&n,&m);
12
printf("\n整数%d和%d的最大公约数为:%d",n,m,Gcd(n,m));
13
printf("\n整数%d和%d的最小公倍数为:%d",n,m,Icm(n,m));
14![]()
15
return 0;
16
}
17
/*该函数用辗转相除法计算两个数的最大公约数*/
18![]()
19
int Gcd(int x,int y)
20
{
21
int t,r;
22![]()
23
if (x<y)
24
{
25
t=x;
26
x=y;
27
y=t;
28
}
29![]()
30
while (1)
31
{
32
r=x%y;
33
if (r!=0)
34
{
35
x=y;
36
y=r;
37
}
38
else break;
39
}
40![]()
41
return y;
42
}
43
/*该函数用于计算两个数饿最小公倍数*/
44![]()
45
int Icm(int x,int y)
46
{
47
return ((x*y)/Gcd(x,y));
48
}
49![]()
50
/****************************/
51![]()
52![]()
#include <stdio.h>2

3
int Gcd(int x,int y);4
int Icm(int x,int y);5

6
int main(void)7
{8
int n,m;9

10
printf("请输入两个整数(n,m):");11
scanf("%d,%d",&n,&m);12
printf("\n整数%d和%d的最大公约数为:%d",n,m,Gcd(n,m));13
printf("\n整数%d和%d的最小公倍数为:%d",n,m,Icm(n,m));14

15
return 0;16
}17
/*该函数用辗转相除法计算两个数的最大公约数*/18

19
int Gcd(int x,int y)20
{21
int t,r;22

23
if (x<y)24
{25
t=x;26
x=y;27
y=t;28
}29

30
while (1)31
{32
r=x%y;33
if (r!=0)34
{35
x=y;36
y=r;37
}38
else break;39
}40

41
return y;42
}43
/*该函数用于计算两个数饿最小公倍数*/44

45
int Icm(int x,int y)46
{47
return ((x*y)/Gcd(x,y));48
}49

50
/****************************/51

52



浙公网安备 33010602011771号