[bzoj5105][數論]晨跑
阿新 • • 發佈:2018-12-22
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;
}