[GESP2506一级] 值日

题目信息:

小杨每m天一次,小红每n天一次,今天一起值日,最少多少天后,再次同一天值日

任务:求m和n的最小公倍数

方案:先求出m和n的最大公约数p,最小公倍数q=m*n/p

解题逻辑:

#include <iostream>
using namespace std;
int main(){
    int m,n;
    cin>>m>>n;
    int p=1; // 最大公约数
    for(int i=1;i<=m&&i<=n;i++){
        if(m%i==0&&n%i==0){
            p=i;
        }
    }
    int q=m*n/p; // 最小公倍数
    cout<<q;
    return 0;
}