【题目来源】
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
*/