暑期集训之最小公倍数
2017-07-21 20:03
246 查看
给定两个正整数,计算这两个数的最小公倍数。
Input输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数.
Output对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。
Sample Input
Sample Output
70
关于最小公倍数问题,其实如果会最大公约数了,那么最小公倍数也就没啥难度了,因为最小公倍数的算法就是a/gcd(a,b)*b(gcd即最大公约数),这里其实采用了先除再乘的方法,其实是为了防止数太大溢出那种情况,不过还是非常一般的方法,不过新手非常适合理解,话不多说,代码如下:
#include<stdio.h>
int gcd(int a,int b)
{
if(a<b)
{
int t;
t=a;
a=b;
b=t;
}
while(b!=0)
{
int tem=b;
b=a%b;
a=tem;
}
return a;
}
main()
{
int m,n;
while(scanf("%d%d",&m,&n)!=EOF)
{
int k=gcd(m,n);
printf("%d\n",m*n/k);
}
}
Input输入包含多组测试数据,每组只有一行,包括两个不大于1000的正整数.
Output对于每个测试用例,给出这两个数的最小公倍数,每个实例输出一行。
Sample Input
10 14
Sample Output
70
关于最小公倍数问题,其实如果会最大公约数了,那么最小公倍数也就没啥难度了,因为最小公倍数的算法就是a/gcd(a,b)*b(gcd即最大公约数),这里其实采用了先除再乘的方法,其实是为了防止数太大溢出那种情况,不过还是非常一般的方法,不过新手非常适合理解,话不多说,代码如下:
#include<stdio.h>
int gcd(int a,int b)
{
if(a<b)
{
int t;
t=a;
a=b;
b=t;
}
while(b!=0)
{
int tem=b;
b=a%b;
a=tem;
}
return a;
}
main()
{
int m,n;
while(scanf("%d%d",&m,&n)!=EOF)
{
int k=gcd(m,n);
printf("%d\n",m*n/k);
}
}
相关文章推荐
- 暑期集训之最小公倍数
- ACM暑期集训——专题一[最小生成树prim算法]
- c++实验7——最大公约数和最小公倍数
- 15/7/2017 暑期第一次集训小总结
- 求分解后x的最小公倍数
- 暑期集训—day1—hdu 4190— Distributing Ballot Boxes—二分,优先队列
- HDOJ1102 Constructing Roads【最小生成树】-----武科大ACM暑期集训队选拔赛1题
- C语言最大公约数与最小公倍数
- 求两个数的最大公约数和最小公倍数
- 算法训练 5-1最小公倍数
- 暑期集训之cake
- HPU2017-2016级暑期集训练习赛 【题解】
- 暑期集训第二天
- 最小公倍数 Plus
- [数论][莫比乌斯反演] 51Nod 1222 最小公倍数计数
- 中石油 暑期集训个人赛 水题部分
- oj1963: C/C++经典程序训练1---最大公约数与最小公倍数
- 暑期集训之阶乘之和
- 暑期集训第五天
- 最小公倍数和最大公约数