洛谷 B4355:[GESP202506 一级] 值日 ← 最小公倍数(三种方法)

【题目来源】
https://www.luogu.com.cn/problem/B4355

【题目描述】
小杨和小红是值日生,负责打扫教室。小杨每 m 天值日一次,小红每 n 天值日一次。今天他们两个一起值日,请问至少多少天后,他们会再次同一天值日?

【输入格式】
第一行,一个正整数 m,表示小杨的值日周期;
第二行,一个正整数 n,表示小红的值日周期。

【输出格式】
一行,一个整数,表示至少多少天后他们会再次同一天值日。

【输入样例】
4
6

【输出样例】
12

【数据范围】
对于所有测试点,保证 1≤m,n≤100。

【算法分析】
典型的求"最小公倍数"的题目。

【算法代码一】

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    int m,n,t=1;
    cin>>m>>n;
    while(1) {
        if(t%m==0 && t%n==0) {
            cout<<t;
            break;
        }
        t++;
    }
    return 0;
}

/*
in:4 6
out:12
*/

【算法代码二】

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    int m,n;
    cin>>m>>n;
    cout<<m/__gcd(m,n)*n;

    return 0;
}

/*
in:4 6
out:12
*/

【算法代码三】

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int gcd(int a,int b) {
    if(b==0) return a;
    return gcd(b,a%b);
}

int main() {
    int m,n;
    cin>>m>>n;
    cout<<m/gcd(m,n)*n;

    return 0;
}

/*
in:4 6
out:12
*/

【参考文献】
https://www.luogu.com.cn/problem/solution/B4355

相关推荐
Tisfy3 天前
LeetCode 1979.找出数组的最大公约数:模拟(附手动gcd)
java·数学·算法·leetcode·题解·最大公约数
Tisfy4 天前
LeetCode 3867.数对的最大公约数之和:按题目说的做(gcd)
算法·leetcode·题解·模拟·最大公约数·gcd
handler012 个月前
【C++ 算法竞赛基础】数论篇:核心公式、经典例题与高频模板
开发语言·c++·算法·蓝桥杯·数论·最大公约数·最小公倍数
hnjzsyjyj2 个月前
洛谷 B3634:最大公约数和最小公倍数 ← 更相减损法
最大公约数·更相减损法
汉克老师3 个月前
GESP2025年6月认证C++五级( 第一部分选择题(1-8))
c++·链表·线性筛·最大公约数·gesp5级·gesp五级·埃氏筛
迈巴赫车主4 个月前
求最大公约数-欧几里得算法(辗转相除法)
算法·最大公约数
_OP_CHEN7 个月前
【算法基础篇】(三十八)数论之最大公约数与最小公倍数 —— 从原理到实战
蓝桥杯·数论·最大公约数·最小公倍数·欧几里得算法·acm/icpc·秦九韶算法
nju_spy8 个月前
力扣每日一题(11.10-11.29)0-1 和 k 整除系列
python·算法·leetcode·前缀和·单调栈·最大公约数·0-1背包
heeheeai1 年前
辗转相除法(欧几里得算法)的证明
算法·最大公约数