1. 程式人生 > >[bzoj5105][數論]晨跑

[bzoj5105][數論]晨跑

Description

“無體育,不清華”、”每天鍛鍊一小時,健康工作五十年,幸福生活一輩子”在清華,體育運動絕對是同學們生活中
不可或缺的一部分。為了響應學校的號召,模範好學生王隊長決定堅持晨跑。不過由於種種原因,每天都早起去跑
步不太現實,所以王隊長決定每a天晨跑一次。換句話說,假如王隊長某天早起去跑了步,之後他會休息a-1天,然
後第a天繼續去晨跑,並以此類推。王隊長的好朋友小欽和小針深受王隊長堅持鍛鍊的鼓舞,並決定自己也要堅持
晨跑。為了適宜自己的情況,小欽決定每b天早起跑步一次,而小針決定每c天早起跑步一次。某天早晨,王隊長、
小欽和小針在早起跑步時相遇了,他們非常激動、相互鼓勵,共同完成了一次完美的晨跑。為了表述方便,我們把
三位同學相遇的這天記為第0天。假設三位同學每次晨跑的時間段和路線都相同,他們想知道,下一次三人在跑步
時相遇是第幾天。由於三位同學都不會算,所以希望由聰明的你來告訴他們答案。

Input

輸入共一行,包含三個正整數a,b,c,表示王隊長每隔a天晨跑一次、小欽每隔b天晨跑一次且小針每隔c天晨跑一次。

1<=a,b,c<=10^5
Output

輸出共一行,包含一個正整數x,表示三位同學下次將在第x天相遇。

Sample Input

2 3 5

Sample Output

30

題解

三個數的LCM
就這樣 水題GG

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath> using namespace std; typedef long long LL; LL gcd(LL a,LL b) { if(a==0)return b; return gcd(b%a,a); } LL n,m,k; int main() { LL ans; scanf("%lld%lld%lld",&n,&m,&k); ans=n*m/gcd(n,m); ans=ans*k/gcd(ans,k); printf("%lld\n",ans); return 0; }