51nod 1012最小公倍数LCM

输入2个正整数A,B,求A与B的最小公倍数。

Input

2个数A,B,中间用空格隔开。(1<= A,B <= 10^9)

Output

输出A与B的最小公倍数。

Input示例

30 105

Output示例

210

最小公倍数与最大公约数之间有联系
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 ll gcd(ll x,ll y){
 5     return y?gcd(y,x%y):x;
 6 }
 7
 8 ll gbs(ll x,ll y){
 9     return x/gcd(x,y)*y;
10 }
11
12 int main(){
13     ll a,b;
14     scanf("%lld %lld",&a, &b);
15     ll ans=gbs(a,b);
16     printf("%lld\n",ans);
17     return 0;
18 } 
时间: 2024-10-06 07:34:47

51nod 1012最小公倍数LCM的相关文章

[2016-05-09][51nod][1012 最小公倍数LCM]

时间:2016-05-09 18:53:56 星期一 题目编号:[2016-05-09][51nod][1012 最小公倍数LCM] 题目大意:求a和b的最小公倍数 #include<cstdio> using namespace std; typedef long long ll; ll gcd(ll a,ll b){ return b == 0 ? a : gcd(b ,a%b); } ll lcm(ll a,ll b){ return a / gcd(a,b) * b; } int ma

1012 最小公倍数LCM(51NOD基础题)

1012 最小公倍数LCM(51NOD基础题) 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 输入2个正整数A,B,求A与B的最小公倍数. Input 2个数A,B,中间用空格隔开.(1<= A,B <= 10^9) Output 输出A与B的最小公倍数. Input示例 30 105 Output示例 210 #include <cstdio> #define LL long long LL n , m ; LL result ; // 递归实现辗

1012 最小公倍数LCM

1012 最小公倍数LCM 基准时间限制:1 秒 空间限制:131072 KB 输入2个正整数A,B,求A与B的最小公倍数. Input 2个数A,B,中间用空格隔开.(1<= A,B <= 10^9) Output 输出A与B的最小公倍数. Input示例 30 105 Output示例 210 import java.util.Scanner; public class Main { static long gcd(long a,long b){ return a%b==0? b:gcd(

【51NOD-0】1012 最小公倍数LCM

[算法]欧几里德算法 #include<cstdio> int gcd(int a,int b) {return b==0?a:gcd(b,a%b);} int main() { int a,b; scanf("%d%d",&a,&b); printf("%lld",1ll*a*b/gcd(a,b)); return 0; }

light_oj 1236 求最小公倍数( lcm(a,b) )等于n的数对 素因数分解

light_oj 1236 求最小公倍数( lcm(a,b) )等于n的数对  素因数分解 H - Pairs Forming LCM Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice LightOJ 1236 Description Find the result of the following code: long long pairsFormL

ACM数论之旅3---最大公约数gcd和最小公倍数lcm(苦海无边,回头是岸( ̄? ̄))

gcd(a, b),就是求a和b的最大公约数 lcm(a, b),就是求a和b的最小公倍数 然后有个公式 a*b = gcd * lcm     ( gcd就是gcd(a, b), ( •?∀•? ) 简写你懂吗) 解释(不想看就跳过){ 首先,求一个gcd,然后... a / gcd 和 b / gcd 这两个数互质了,也就是 gcd(   a / gcd ,b / gcd  )  =  1,然后... lcm = gcd *  (a / gcd) * (b / gcd) lcm = (a *

最小公倍数-lcm

第一种方法: 逐步倍增法: int lcm(int a,int b)//b>a { int now=1; while(!now*b%a) { now++; } return now*b; } 第二种方法: 定理法: a,b两个数的最大公约数乘以他们的最小公倍数等于他们的乘积. 即:lcm(a,b)=a*b/gcd(a,b)

51nod 1434 区间LCM 素数

1434 区间LCM 题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个整数序列S的LCM(最小公倍数)是指最小的正整数X使得它是序列S中所有元素的倍数,那么LCM(S)=X. 例如,LCM(2)=2,LCM(4,6)=12,LCM(1,2,3,4,5)=60. 现 在给定一个整数N(1<=N<=1000000),需要找到一个整数M,满足M>N,同时LCM(1,2,3,4,...,N- 1,N) 整除 LCM(N+1,N

最大公约数gcd和最小公倍数lcm

gcd(a, b),就是求a和b的最大公约数 lcm(a, b),就是求a和b的最小公倍数 然后有个公式 a*b = gcd * lcm     ( gcd就是gcd(a, b), ( •?∀•? ) 简写你懂吗) 解释(不想看就跳过){ 首先,求一个gcd,然后... a / gcd 和 b / gcd 这两个数互质了,也就是 gcd(   a / gcd ,b / gcd  )  =  1,然后... lcm = gcd *  (a / gcd) * (b / gcd) lcm = (a *