正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
#include <stdio.h>
int min_gong(int a, int b)
{
int min = 0;
int i = 1;
while (1)
{
min = i * a;
if (min % b == 0)
{
return min;
}
i++;
}
}
int main()
{
int a = 0;
int b = 0;
scanf("%d %d", &a, &b);
printf("%d", min_gong(a, b));
return 0;
} #include <iostream>
using namespace std;
int gcb(int a, int b){
int r;
while(r = a % b){
a = b;
b = r;
}
return b;
}
int main(){
int a, b;
cin >> a >> b;
// 最小公倍数 = 两数之积除以最大公约数
// 这里使用碾转相除法进行最大公约数的求解:
// 即a与b的最大公约数可以转化为a、b之间的余数为两者之间最小的数之间的公约数。
// 所以对于输入的两个数进行连续求余,直到余数为0,求余的分母即为结果。
cout << a * b / gcb(a, b);
return 0;
} import java.util.*;
public class Main{
public static int gcd (int a, int b) {
if (b == 0){
return a;
}
return gcd (b,a%b);
}
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println((a*b)/gcd(a,b));
}
} #include<bits/stdc++.h>
using namespace std;
int a,b;
int main(){
cin>>a>>b;
cout<<a*b/(__gcd(a,b));
return 0;
} #include <stdio.h>
#define MAX 100000000
int main() {
int a, b;
while (scanf("%d %d", &a, &b) != EOF) { // 注意 while 处理多个 case
int max;
if(a>=b){
max = a;
}else{
max = b;
}
if(max%a==0 && max%b==0){
printf("%d",max);
}else{
for(int i = max; i<MAX; i++){
if(i%a==0 && i%b==0){
printf("%d",i);
break;
}
}
}
// 64 位输出请用 printf("%lld") to
// printf("%d\n", a + b);
}
return 0;
} import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int m = scan.nextInt();
int n = scan.nextInt();
int c = m * n / sameNum(m,n);
System.out.println(c);
}
public static int sameNum(int a,int b) {
int c = a % b;
while(c != 0) {
a = b;
b = c;
c = a % b;
}
return b;
}
}
import java.util.*;
public class Main{
public static int gdc(int n, int m){
if(m == n){
System.out.println(n);
}
if(n < m){
int tmp = n;
n = m;
m = tmp;
}
int r = 0;
//辗转相除法求最大公约数
while((r = n % m) > 0){
n = m;
m = r;
}
return m;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int mn = gdc(n,m);
System.out.println((n * m)/mn);
}
}
//方法2
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int a = Math.max(m,n);
int b = Math.min(m,n);
int c = 0;
//辗转相除法求最大公约数
while((c = a % b) > 0){
a = b;
b = c;
}
System.out.println((n * m)/b);
}
}
#define CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
void asr(int a, int b)
{
int i = a>b?b:a;
int j = sqrt(i);
int k = 0;
for(k = j; k > 0; k--)
{
if( a%k == 0 && b%k ==0)
{
printf("%d", a*b/k);
break;
}
}
}
int main()
{
int a = 0, b = 0;
scanf("%d %d", &a, &b);
asr(a, b);
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
scanf("%d%d", &a, &b);
int max = a > b ? a : b; //先找出两个数中的最大值,并赋值给max while (1)
{
if ((max%a == 0) && (max%b == 0)) //判断max是否可以整除两数 {
printf("%d\n", max);
break;
}
else
max++; //若max不可整除两数,则令max++,最终经过有限次循环一定可以找到可以同时整除两数的最小数,且此时该数为两数的最小公倍数 }
return 0;
} /***************************************************
* Author : cornfieldchase
* Blog : cornfieldchase2014.com
* Filename : 求最小公倍数.cpp
* Description :
* Last modified : 2019-11-14 18:45
***************************************************/
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
int main()
{
int m, n, i;
cin >> m >> n;
for (i = m;; i++)
{
if (i%m == 0 && i%n == 0)
break;
}
cout << i;
} def gcd(a, b): if(b == 0): return a return gcd(b, a%b) def lcm(a, b): if(a < 1 or b < 1): return 0 if(a < b): a = a + b b = a - b a = a - b return (a*b / gcd(a, b)) a, b = input().split() c = lcm(int(a), int(b)) print(int(c))